为什么cherry-pick总会导致合并冲突?

JuJ*_*oDi 6 git

我正在挑选从发布分支到我的本地工作副本的特定提交.每次我从发布分支中挑选一个提交时,我都会遇到合并冲突,我必须解决这个问题,即使是看似微不足道的更改,例如:

-const char kApplicationVersion[] = "Develop";
+const char kApplicationVersion[] = "Release";
Run Code Online (Sandbox Code Playgroud)

是对main.cc的提交中唯一的更改.

git status 节目

You are currently cherry-picking commit 6f04be8.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Unmerged paths:
  (use "git add <file>..." to mark resolution)

    both modified:      src/appMain/main.cc
Run Code Online (Sandbox Code Playgroud)

为什么总会有冲突?

Von*_*onC 3

因为由于两个分支已经分歧:

\n\n
    \n
  • dev 分支已修改该行const char kApplicationVersion[] = "Develop";
  • \n
  • rel 分支已修改该行const char kApplicationVersion[] = "Release";
  • \n
\n\n

樱桃选择将解决针对共同祖先的合并,但不会为该文件创建实际的合并(意味着共同祖先仍然是一个更旧的版本,其中dev分支从分支开始release

\n\n

下一个选择将考虑相同的旧共同祖先,并将触发相同的合并冲突。

\n\n

更多信息请参见“在 Git 择优挑选或变基合并冲突中,如何确定 BASE(又名 \xe2\x80\x9c 祖先\xe2\x80\x9d)、LOCAL 和 REMOTE?

\n