使用cherry-pick合并带有提交记录的Git分支

4
以下情况:我有多个分支(master/preview/release),正在master分支上进行开发,并进行定期提交,其中包括“实验性”和“修复性”的提交。
现在,我希望将选定的“修复性”提交合并到我的preview分支中,而不包括“实验性”的提交。
下面的图片展示了我的意思。
现在,我尝试使用cherry-pick和rebase,但我没弄清楚该如何处理。
图片链接:https://istack.dev59.com/TCx3M.webp

首先 - '我正在主分支上开发',天哪。其次,你如何进行cherry pick?这应该很简单,只需检出您希望添加更改的分支,并使用所需提交的哈希运行cherry-pick即可。 - nav
首先:这只是一个情景,方便我解释我想做的事情。其次:我正在进行以下樱桃拣选操作:git checkout preview 然后 git cherry-pick hashcode ,其中 hashcode 是 ADC 提交的哈希码。如预期一样,我的文件在此之后看起来像这样:A <<<<<<< HEAD B ======= D C >>>>>>> bbd71e0... ADC - tienbuiDE
主分支本身并没有什么特别的地方,我不明白为什么你不能在那里开发——它可能不适合的开发模式,但是它本身并没有什么坏处。当然,将错误修复提交到与实验性新功能不同的分支中可能是个好主意——这样你就可以将错误修复分支合并到实验性分支中以保持同步。 - Medo42
你现在的做法听起来不错。具体是什么问题?出现了错误吗? - Yanflea
1个回答

1

看起来 cherry-pick 是你想要的工具,但从你的评论中可以看出你遇到了冲突。在这种情况下,仔细阅读 git cherry-pick 命令的输出,它应该告诉你如何继续完成 cherry-pick。通常,你需要找到冲突的文件(使用例如 git status),解决冲突,然后 git add 已解决的文件。这三个步骤也可以通过使用 git mergetool 来替代。当你解决完毕后,可以使用 git cherry-pick --continue 完成操作。

你可能需要考虑一下你的分支模型,通常情况下你不应该经常使用 cherry-pick。例如,在准备新版本时,应该将功能开发在自己的分支中,并将其合并到适当的“发布分支”(预览/发布)中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接