假设我有3个按顺序提交的提交
c1
+ print("A")
c2
+ print("B")
c3
+ print("C")
然后我在c1处检出了一个新分支。
git checkout -b br c1
然后我选择了c3。
git cherry-pick c3.
我希望的是该文件具有以下特点:
print("A")
print("C")
-- 我只是选择了c3并且在c3中添加了一行代码print("C"),但事实上我遇到了冲突,导致结果如下:
print("A")
++<<<<<<< HEAD
++=======
+ print("B")
+ print("C")
++>>>>>>> f1383aa... C
我的问题是: 1. 为什么会冲突? 2. 如果我想要打印“A”和“C”,我该怎么做?
我还尝试过即使我...
git diff C^1 .. C > 1.patch
git apply 1.patch
我得到了
zhifan@zhifandeMacBook-Pro ~/g/demo> git apply 1.patch
error: patch failed: 1.py:1
error: 1.py: patch does not apply
merge.conflictStyle
设置为diff3
,那么你将会得到基础版本和两个提交版本。我发现这对于解决冲突非常有帮助。其他人则靠 mergetool 方法,因为你可以在三个版本上看到三个窗口(或者 mergetool 显示的任何窗口)。 - torek