我们在我们的项目中使用Gerrit,并且始终在任何传入的新更改的基础上重新规划本地更改,从而保持线性历史记录。如何避免将我的更改合并到Gerrit中的主分支后重复提交
我已经提交到我的本地主分支我的变化后,我推他们到远程:
git push origin HEAD:refs/for/master
这为我犯下格里特审查。当我运行git status
时,它说我的本地分支在一次提交之前位于origin/master之前,因为我的新提交尚未合并到远程主分支中。请记住,其他提交者可能还有其他提交者未提交合并到远程主分支的提交。这意味着我不能在我们之前重新定义我的提交,因为它们不在远程mater分支中。
当我的提交已合并到远程主分支,在任何其他提交之前或之后,并且在我运行git fetch origin
之后,运行git status
说我的本地主分支和远程已经发生分离,因为本地版本我的提交(它的sha-1)与远程版本不同。基本上我的提交是在不同的sha-1下复制的。然后我必须运行git reset --hard HEAD~1
来删除我的提交的本地版本,然后git merge origin/master
来快速转发我的本地分支以包含来自远程主分支的新更改。有什么办法可以避免这种情况?
如果我rebase,我的提交仍将被复制。 –
这是因为你把它合并到gerrit上。如果它太晚了(你已经合并它),你必须做你提到的问题。我的答案是为了避免这种情况下的下一次提交。 – Flows
将我的提交推送到远程后,重新绑定的要点是什么? –