我的团队中有时会遇到一个非常奇怪的问题。
让我用图片来描述它:
让我们说我们有两个具有相同基本提交“ commit 1”的分支。
现在,在“提交2”中,有人在文件X.txt中添加了新行。
在“提交3”中,有人添加了行文件Y.txt。
此后,还有更多的提交,更多的分支,最后我们合并了这两个分支。像完全正常合并的接缝。
但是有时候会发生一些奇怪的事情,因为Git可以决定放弃Y文件中绿色分支中所做的更改,即使该文件在红色分支中没有任何更改。
有时,它甚至删除添加到绿色分支但未添加到红色分支的文件。
我很困惑,不知道为什么会这样。
我们正在使用SourceTree,项目在Unity中。
对于任何想法,我都会感激不尽;-)。
答案 0 :(得分:0)
但是有时会发生一些奇怪的事情,因为git可以决定应该放弃Y文件中绿色分支中所做的更改,即使该文件在红色分支中完全没有变化也是如此。
有时,它甚至会删除添加到绿色分支但未添加到红色分支的文件。
这取决于合并方向:合并中哪个是源分支,哪个是目标分支?
git checkout green
,git merge red
),则以绿色而不是红色修改的文件将保持不变。git checkout red
,git merge green
),则不会发生相同的问题。