樱桃挑选后如何删除非主分支中的旧提交?

时间:2014-10-01 05:31:31

标签: git commit git-cherry-pick

在master分支中,我有以下提交:

A-B-C-D-HEAD

在分支"测试"我有:

A

我做了:

git cherry-pick <SHA FOR COMMIT C>

但是,我不想要提交B&#34;测试&#34;科。我该怎么理睬呢?这样测试分支就像: A-C

2 个答案:

答案 0 :(得分:4)

你可以这样做:(假设主人指向D)
1.(主)git-checkout -b test
2.(测试)git rebase -i
您将拥有一个提交列表,如:

pick b6e7d38 A
pick 263b0cc B
pick 6bcea1d C
pick 6kdf8gd D

只需删除您不想要的提交(此处为B和D)。保存并继续,在变基时将省略它。

答案 1 :(得分:0)

根据我的最佳选择是git format-path

Step1 :(主人)git format-patch -2
第2步:(主人)git checkout -b test <SHA of Commit-A>
第3步:(测试)git am 0002-Commit-Msg-of-C

你很高兴!

说明:Step1将创建2个补丁文件,一个用于提交D,一个用于C.在步骤3中,您将应用在commit-C over A(测试点到A,步骤2)时进行的补丁(更改)

希望这有帮助!

PS:如果B中的更改与C中的更改无关,则此方法有效。