将多个非连续提交移动到不同的分支

时间:2016-04-08 07:27:56

标签: git git-branch git-rebase

我有两个分支,不应该直接合并在一起(还)。但是,我需要将两个不同的非连续提交从一个分支移动到另一个分支。我目前有:

top-branch:
A-B-C-D

bottom-branch:
X-Y

我想得到:

top-branch:
A-C

bottom-branch:
X-Y-B-D

1 个答案:

答案 0 :(得分:2)

假设你从类似于这个的情况开始:

> git log --oneline --graph --all --decorate=short
* e08a53c (HEAD, bottom-branch) Y
* b659a43 X
| * 88612b2 (top-branch) D
| * 8b37e26 C
| * afe4ffd B
| * 5bc157c A
|/
* e3c7a2d other commit

我会从分支bottom-branch开始挑选你需要的两个提交

git cherry-pick afe4ffd

然后返回top-branch和交互式rebase删除您不需要的两个提交

git rebase -i HEAD~4