gpt4 book ai didi

git - 有人可以解释这个有趣的 git merge 行为吗

转载 作者:太空狗 更新时间:2023-10-29 13:41:46 24 4
gpt4 key购买 nike

我有两个分支,

A-C (master)
\
B-D (clean)

A..C 中,我添加了一个包含一堆文件的目录。在 A..B 中,我添加了完全相同的目录和文件,这样 git diff C..B 就不会显示该目录中的任何更改。在 B..D 中,我对这些文件进行了更改。我想将这些更改 merge 到 master 中。我尝试了两种不同的方法,一种工作正常,另一种非常糟糕:

git merge clean

上面的命令会产生大量的冲突,实际上每个文件都会发生冲突。

git merge clean^
git merge clean

以上完美运行,递归 merge ,完全没有冲突。

上述情况如何以及为何发生? git能不能不看一下历史就确定是早 split 了?还是将其用作 merge 策略可能过于繁重?

最佳答案

在第一种情况下,git merge clean,Git 没有作为 merge 基础的冲突文件的共同祖先,所以看起来您正在尝试将两棵树放在一起创建了相同的文件名但内容不同。 (共同祖先 A 没有任何冲突的文件。)

在第二种情况下,git merge clean^ && git merge clean,第一次 merge 再次看到没有共同的祖先,但能够轻松解决它,因为文件是相同的。然后第二个 merge 可以采用现在已知的祖先,并只应用差异。

关于git - 有人可以解释这个有趣的 git merge 行为吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com