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

时间:2018-05-29 07:05:46

标签: git git-merge atlassian-sourcetree

  • 在我的提交历史中,我看到我做了一个提交,我在文件Masterlist / Index.cshtml中添加了几行。
  • 自3个月前以来,没有人编辑过该文件。
  • 在提交之后,存在一些与已解决的冲突的合并,之后存在一个没有冲突的合并,其中删除了文件中的这些行。
  • 在文件历史记录中,除了3个月之外没有任何变化......

提交我添加行的地方: enter image description here

合并删除它: enter image description here

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

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

我的问题:

  1. 如何删除添加的行?什么可能出错?
  2. 如何防止这种情况发生?
  3. 为什么文件历史记录中没有条目?
  4. 使用git时我们正在使用Source tree或Visual studio。

1 个答案:

答案 0 :(得分:1)

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

我非常确定(信任提交邮件中的冲突文件列表,并且留下1%进行一些重命名检测变得疯狂,但我不知道如何在不删除文件的情况下发生这种情况),如果你检查3505b4提交并合并2f3f2a,重现合并冲突,您将有文件ABC/Views/Masterlist/Index.cshtml干净地上演您的更改而不会发生冲突。

如果确认,冲突解决方案应该出错。我认为你应该重新审视与该人解决冲突的过程。我可以想象为什么会发生这两种选择:

  1. 解决冲突的工具/流程做错了。

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