git 在什么情况下可以合并丢弃文件中的更改?

Under what circumstances can git merge discard a change in a file?

提交我添加的行:

合并删除它:

git log --graph --full-history -- ABC/Views/Masterlist/Index.cshtml 产生了这个:

git log -S"-webkit-transform: translateY(-100%) rotate(90deg); /* Safari */" -c 产生了这个:

我的问题:

  1. 添加的行怎么可能被删除了?会出什么问题?
  2. 如何防止这种情况发生?
  3. 为什么文件历史记录中没有条目?

我们在使用 git 时使用源代码树或 Visual studio。

看起来错误的合并是 4246a2,未能从 2f3f2a 获取更改。

我非常确定(相信提交消息中的冲突文件列表,并为某些重命名检测留出 1% 太疯狂了,尽管我不明白如果不删除文件怎么会发生),如果你检查 3505b4 提交和合并 2f3f2a,重现有冲突的合并,你的文件 ABC/Views/Masterlist/Index.cshtml 将干净地与你的更改一起上演,没有冲突。

如果确认,则冲突解决中应该出了问题。我认为你应该重新审视与那个人解决冲突的过程。我可以想象它发生的 2 个选项:

  1. 解决冲突的tool/process做错了。

  2. 执行 4246a2 合并的开发人员使用了 -sours 并手动引入了另一个父级的更改,并以某种方式跳过了该文件的更改。