我如何跟踪分支之间的 git cherry-pick 提交

How can I track git cherry-pick commits between branches

我有一个长期存在的补丁分支和一个开发分支。我想挑选从开发到补丁分支的特定更改。

当我这样做时,我得到新的提交,没有 link 到旧的提交。

有没有办法为该提交选择并维护父 link 到分支?

添加“-x”是我能做的最好的吗?

谢谢

是的,-x 确实是引用您精心挑选的提交的唯一方法。

如果要维护提交的父关系,则需要合并分支。我的猜测是,您可能希望将补丁分支与开发分支合并,以便将您的工作正确隔离。

尽管根据您表述问题的方式,我认为您可能对提交有误解。他们没有 "link" 到分支机构。相反,每个提交都有一个它们指向的父提交。合并提交有多个父级来显示他们正在合并哪些提交。分支实际上只是指向提交的指针。一个提交可以存在于多个分支上,因为它已被合并,或者您基于它创建了一个新分支,或者是后来的提交。

git cherry-pick 所做的是复制您在一个分支上所做的更改并将它们应用到不同的位置。您这样做是因为您不希望历史的其余部分与此特定更改一起出现。如果你想维护历史,你会 git mergegit rebase 从一个分支到另一个分支的变化。