使用 git 追加分支提交

append branch commits with git

我想将另一个分支的提交附加到我当前的分支:

      A---B---C feat_A*
     /
o---o---o---o master
     \
      D---E---F feat_B


      A---B---C---D'--E'--F' feat_A*
     /
o---o---o---o master
     \
      D---E---F feat_B

但是,执行 git rebase feat_B 会导致 D---E---F---A'--B'--C'

另一种选择是

git checkout feat_B
git rebase feat_A

这导致了正确的顺序 A---B---C---D'--E'--F' 但是这些提交在 feat_B 而不是 feat_A.

如何让 git-rebase 将另一个分支的提交附加到当前分支?

无需变基即可轻松操作,只需挑选您需要的范围即可:

git checkout feat_A
git cherry-pick ..feat_B

其中 ..feat_B 是隐含的 HEAD..feat_B,意思是 "every commit from feat_B which is not already reachable from HEAD"。

git cherry-pick <commit> 命令允许您进行一次提交(从任何分支),并且实质上是在您的工作分支中对其进行 rebase。