1

我的本地仓库中有两个分支:branch_1branch_2,每个都基于相同的提交A并包含多个提交(相应的头是A1A2)。

我将A1A2都推送到 Gerrit分支,并进行了两个单独的评论。然后,我抛弃了他们。

现在我需要基于A创建一个新的本地分支branch_3并包含从A1A2A3的更改。我做了:

git checkout -b branch_3 origin/master

git merge branch_1 branch_2

我有一个我需要的提交A3并将其推送给 Gerrit。创建了第三次审查,但它依赖于之前两次放弃的提交,因此我无法提交。

有没有办法将两个分支合并到一个提交A3中,以便它仅依赖于A而不是A1A2

4

2 回答 2

2

方法 1:尝试将包含 A3 的分支变基到origin/master

方法2:签出一个干净的分支,cherry-pick commit A3,然后再次推送:

git checkout -b feature --track origin/master

git cherry-pick A3

git push origin HEAD:refs/for/master

于 2013-04-09T15:21:41.643 回答
0

对于每个必要的提交,应使用选项“-n”进行挑选:

git checkout A
git cherry-pick -n A1
git cherry-pick -n A2
git commit

新创建的提交 A3 是预期的。

于 2013-07-30T07:05:07.393 回答