gpt4 book ai didi

git - 为什么 cherry-pick 总是导致 merge 冲突?

转载 作者:太空狗 更新时间:2023-10-29 13:14:36 25 4
gpt4 key购买 nike

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

-const char kApplicationVersion[] = "Develop";
+const char kApplicationVersion[] = "Release";

是对 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

为什么总是有冲突?

最佳答案

因为两个分支已经 fork 了:

  • dev 分支修改了 const char kApplicationVersion[] = "Develop";
  • rel 分支修改了 const char kApplicationVersion[] = "Release";

cherry-pick 将解决针对共同祖先的 merge ,但不会为该文件创建实际 merge (这意味着共同祖先仍然是一个更旧的版本,其中 dev 分支从发布分支)

下一个 cherry-pick 将考虑同一个旧的共同祖先并将触发相同的 merge 冲突。

在“In a Git cherry-pick or rebase merge conflict, how are BASE (aka “the ancestor”), LOCAL, and REMOTE determined?”中查看(更多)

关于git - 为什么 cherry-pick 总是导致 merge 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24761745/

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