Git在Gerrit中审核提交时推送另一个提交

Git在Gerrit中审核提交时推送另一个提交,git,gerrit,Git,Gerrit,我正在寻找一种方法,在上一次提交仍在审查中且未合并到回购协议的情况下,推动另一次提交 例如: git添加 git commit-m“我的第一次提交” git推送原点磁头:refs/for/master Gerrit仍在审查该承诺。现在我在本地做了另一个改变 git commit-m“我的第二次提交” git远程更新 吉特重基 git推送原点磁头:refs/for/master 这将再次将两个提交推送到Gerrit。有没有办法在合并第一次提交之前只推送第二次提交?您的方法没有问题。你可以毫无问题地

我正在寻找一种方法,在上一次提交仍在审查中且未合并到回购协议的情况下,推动另一次提交

例如:

git添加

git commit-m“我的第一次提交”

git推送原点磁头:refs/for/master

Gerrit仍在审查该承诺。现在我在本地做了另一个改变

git commit-m“我的第二次提交”

git远程更新

吉特重基

git推送原点磁头:refs/for/master


这将再次将两个提交推送到Gerrit。有没有办法在合并第一次提交之前只推送第二次提交?

您的方法没有问题。你可以毫无问题地用这种方式工作。您只需要知道,如果您需要修改第一次提交(由于某些审查问题),那么您必须重新设置第二次提交的基础,以便能够合并(提交)它(参见下文)

你是这样工作的:

BASE --- A --- B
如果更改提交,您将有:

BASE --- A --- B
   |
   |--- A'
BASE --- A --- B
   |
   |--- A' --- B'
在重新设置基础后,您将有:

BASE --- A --- B
   |
   |--- A'
BASE --- A --- B
   |
   |--- A' --- B'
如果可能,请始终尝试“并行”进行提交,因为这样可以更改任何您想要的提交,而不会影响其他提交。像这样:

git checkout -b change1 origin/master
< edit, add, commit >
git push origin HEAD:refs/for/master

git checkout -b change2 origin/master
< edit, add, commit >
git push origin HEAD:refs/for/master
现在,如果更改A,则不需要重新设置B的基础:

BASE --- A
   |
   |--- A'
   |
   |--- B

Gerrit将在审查/提交过程后合并(取决于配置的合并策略)两个最终提交。

如果git回购上没有发生任何事情,远程更新和重新基址不应有效地执行任何操作。第二次提交将被提交到review中,我希望对第一次审核没有任何影响。你看到了什么?为什么要使用远程更新+rebase?答案很好,但最好明确给出rebase命令的示例,如
git-rebase…