Git 中应如何将一个分支的新提交“接”到另一个分支的新提交之后?

使用 Git 2.16.5
分支 A 的提交记录是这样的:A->B->C->D->F
分支 B 的提交记录是这样的:A->B->C->E
现在需要将分支 A 的提交合并到分支 B(分支 B 的提交不合并到分支 A),我想让合并后的分支 B 变成这样:A->B->C->E->D->F(假设这些提交之间不冲突)
我尝试过在分支 B 下使用 git rebase A,但是执行后分支 B 是这样的:A->B->C->D->F->E
如果 git merge A 的话会创建一个用于合并的提交,分支 B 的提交记录会变成 A->B->C->E->D->F->Merge,但是我不想创建用于合并的提交
我应该怎么做?

阅读 4.7k
2 个回答

使用 git cherry-pick,这种方式用于在本地分支中将某一分支上的 commit 复制到其他分支。在想要添加 commit 的分支上,如此例的 B 分支中:

git cherry-pick D...F

... 表示一个 commit 范围选择,也可输入单个的 commit。 这个命令可以挑选任意位置的 commit 合并到分支最新的位置,如果怕代码冲突时解决冲突造成 commit 提交信息改变可以加上 -x 保留原来的提交信息。

rebase里面的记录顺序是可以自己手动调整位置的。 出冲突自行解决。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进