git - 对 .gitignore 的更改未显示在日志中,但显示在提交到提交差异中

标签 git gitignore git-diff git-log

10 某些东西返回,我对 .gitignore 文件进行了更改。今天,当我提取最新代码时,我的更改不在那里。所以我运行了这个命令:

git log -p .gitignore

它告诉我文件的最后更改是我的。然后我提取了从现在到我的提交之间的所有提交,并确定了删除我的更改的提交。然后我对那个提交和之前的提交进行了比较,在差异中我可以看到文件的变化。

但是为什么我通过上面的命令看不到变化呢?当我使用

时我什至没有看到这种变化
gitk .gitignore

另外我想知道,当我也尝试查看其他文件的历史记录时是否会发生这种情况?

最佳答案

也许您所说的更改是通过与另一个分支 merge 引入的?有不同的 merge 策略,尽管您的提交可能是按时间顺序排列的最后一个, merge 过程可能更喜欢符合策略规则的旧提交。

默认情况下,git 使用 recursive 策略,该策略将按照创建顺序排列提交。但也许在您的情况下, merge 是使用 oursheirs 策略完成的,该策略更喜欢从一个分支提交而不是从另一个分支提交。这就是为什么您可能看不到您实际期望的内容。

请访问this Q&A获取有关策略的更多信息。

关于git - 对 .gitignore 的更改未显示在日志中,但显示在提交到提交差异中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13991959/

相关文章:

node.js - npm WARN package.json Stock@0.0.1 没有存储库字段

git - Git用户的Perforce?

git 仅添加修改过的更改并忽略未跟踪的文件

python - .gitignore 样式 fnmatch()

git 显示提交消息之间的差异

git - 如何从 git 的暂存区中删除一堆文件更改?

Git 无法忽略 Visual Studio 中的 node_modules

git - 如何用 git 查看文件是否已更改?

git - 如何更改 git diff 中的制表符宽度?

git - 在克隆 GitHub 存储库之前如何查看其大小?