2

我正在处理master分支,并创建了一个fix分支,在完成工作后合并回 master:

  C ---.      | fix
 /      \
A -- B -- D   | master

通过 git log 我可以看到:

commit 1992d90ff860b7f965d1cf24a199e2575f7761a9
Merge: 3ef8294 d2d8796
Date:   Fri May 30 13:07:02 2014 +0800

    Merge branch 'fix' -- D

commit d2d8796bc12a85b9948eee8d63fcbbf3b89d4aeb
Date:   Thu May 29 10:57:13 2014 +0800

    C

commit 3ef8294ce739f5f7524084b0b604132e40cf5fd9
Date:   Fri May 16 14:35:11 2014 +0800

    B

commit bfc45852466de4c3dcedc0ea24d8506312004e40
Date:   Fri May 16 10:31:39 2014 +0800

    A

现在我想将 C,D 的提交压缩为一个提交:

A -- B -- E    | master

通常我通过 rebase 压缩提交:

git rebase -i commit_of_B

但在这种情况下它不起作用,git抱怨:

error: could not apply d2d8796... C

有没有办法做到这一点?

4

1 回答 1

1

好吧,刚刚通过cherry-pick选项找到了一种方法-m

git checkout -b work
git reset --hard HEAD^
git cherry-pick -m 1 1992d90ff

现在分支是这样的:

A -- B -- D    | master
于 2014-05-30T06:58:51.523 回答