没有更改的Git合并提交会删除对文件的编辑

时间:2016-02-26 19:21:31

标签: git version-control merge git-merge

一位同事和我正在开发一个使用git进行源代码控制的项目。今天下午,我对一个特定的文件MyFile.txt做了几次提交。我将我的更改推送到我们的主分支(trunk),我的同事很快就合并了他(不相关的)更改。这是一个视觉:

enter image description here

在我的同事进行合并提交(上面的提交标记为1.0.1834)之后,我的所有更改都消失了!

我切换回我的提交(标记为1.0.1833)以验证我是否正确提交了更改;我做了 - MyFile.txt从那天下午开始做了我所有的改变。但是,如果我切换到我的同事的合并提交(标记为1.0.1834),MyFile.txt处于其原始状态而没有任何更改。

我的同事的合并提交(1.0.1834)不包含任何更改 - gitk中的“Diff”窗口为空。这是我们的GitLab网站提交的另一个视图:

enter image description here

发生什么事了?我的变化在哪里?我怎样才能防止将来发生这种情况?

1 个答案:

答案 0 :(得分:1)

如果你的牛仔已经做了git merge --ours,那可能会发生。

生成的合并提交与之前提交的HEAD相同。

这是我们的合并策略:

  

合并的结果树始终是当前分支头的树,实际上忽略了所有其他分支的所有更改。它旨在用来取代边支的旧发展历史   请注意,这与递归合并策略的-Xours选项不同。