一位同事和我正在开发一个使用git进行源代码控制的项目。今天下午,我对一个特定的文件MyFile.txt
做了几次提交。我将我的更改推送到我们的主分支(trunk
),我的同事很快就合并了他(不相关的)更改。这是一个视觉:
在我的同事进行合并提交(上面的提交标记为1.0.1834
)之后,我的所有更改都消失了!
我切换回我的提交(标记为1.0.1833
)以验证我是否正确提交了更改;我做了 - MyFile.txt
从那天下午开始做了我所有的改变。但是,如果我切换到我的同事的合并提交(标记为1.0.1834
),MyFile.txt
处于其原始状态而没有任何更改。
我的同事的合并提交(1.0.1834
)不包含任何更改 - gitk
中的“Diff”窗口为空。这是我们的GitLab网站提交的另一个视图:
发生什么事了?我的变化在哪里?我怎样才能防止将来发生这种情况?
答案 0 :(得分:1)
如果你的牛仔已经做了git merge --ours
,那可能会发生。
生成的合并提交与之前提交的HEAD相同。
这是我们的合并策略:
合并的结果树始终是当前分支头的树,实际上忽略了所有其他分支的所有更改。它旨在用来取代边支的旧发展历史 请注意,这与递归合并策略的
-Xours
选项不同。