在主分支中,我有以下提交:
A-B-C-D-HEAD
在分支“测试”中,我有:
A
我做了:
git cherry-pick <SHA FOR COMMIT C>
但是,我不想在“测试”分支上提交 B。我怎么能忽略它?这样测试分支最终会像:AC
在主分支中,我有以下提交:
A-B-C-D-HEAD
在分支“测试”中,我有:
A
我做了:
git cherry-pick <SHA FOR COMMIT C>
但是,我不想在“测试”分支上提交 B。我怎么能忽略它?这样测试分支最终会像:AC
您可以这样做:(假设 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)。保存并继续,变基时将省略。
在我看来,最好的选择是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 中的更改无关,这将起作用。