GIT:在Gerrit中将两个分支合并为一个没有依赖关系的新分支

时间:2013-04-09 14:00:19

标签: git merge branch gerrit

我的本​​地仓库中有两个分支: branch_1 branch_2 ,每个分支基于相同的提交 A 并包含多个提交(头部相应地 A1 A2

我将 A1 A2 都推送到Gerrit 分支,并进行了两次单独的审核。 然后,我放弃了它们。

现在我需要根据 A 创建一个新的本地分支 branch_3 ,并包含 A1 A2 A3 。我做了:

git checkout -b branch_3 origin/master

git merge branch_1 branch_2

我需要提交 A3 并将其推送到Gerrit。 第三次审查已经创建,但它取决于之前的两次放弃提交,因此我无法提交。

有没有办法将两个分支合并为一个提交 A3 ,这样它只依赖于 A 而不是 A1 A2

2 个答案:

答案 0 :(得分:2)

方法1:在origin/master

上尝试rebase包含A3的分支

方法2:签出一个干净的分支,樱桃挑选提交A3,再次推送:

git checkout -b feature --track origin/master

git cherry-pick A3

git push origin HEAD:refs/for/master

答案 1 :(得分:0)

选项'-n'应该用于每次必要提交的挑选:

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

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