我想把另一个分支的提交内容追加到当前分支上。
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
意思是 "每一次提交都要从 feat_B
尚未从 HEAD
".
该。git cherry-pick <commit>
命令可以让您从任何分支中提取一个提交,并在您的工作分支中重新建立基础。