0

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

A-B-C-D-HEAD

在分支“测试”中,我有:

A

我做了:

git cherry-pick <SHA FOR COMMIT C>

但是,我不想在“测试”分支上提交 B。我怎么能忽略它?这样测试分支最终会像:AC

4

2 回答 2

4

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

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

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

于 2014-10-01T05:46:55.180 回答
0

在我看来,最好的选择是git format-path.

Step1: (master) git format-patch -2
Step2: (master) git checkout -b test <SHA of Commit-A>
Step3: (test)git am 0002-Commit-Msg-of-C

你已准备好出发!

说明:步骤 1 将创建 2 个补丁文件,一个用于提交 D,一个用于 C。在步骤 3 中,您将应用在 A 上提交-C 时所做的补丁(更改)(测试点到 A,步骤 2)

希望这可以帮助!

PS:如果您在 B 中的更改与 C 中的更改无关,这将起作用。

于 2014-10-01T07:14:37.873 回答