如何摆脱格里特的错误依赖

时间:2012-05-01 18:26:13

标签: git gerrit

似乎在使用gerrit时,默认情况下所有更改都取决于前一个。我不分支进行新的更改,我只是在主分支上工作,然后将提交的更改推送到远程源/主服务器。即使两个提交彼此无关,也会每次创建依赖关系。

我遇到了一些问题,这些问题让我觉得我没有正确地将git与gerrit结合使用。

在我的git / gerrit工作流程中,每次提交都不会依赖于之前的提交会发生什么?我也尝试为变化创建一个新的分支:

> git pull origin master
> git checkout -b new_branch
> #make a change
> git add -A
> git commit #with gerrit's commit hook in .git/hooks
> git push origin <sha1>:refs/for/master

这样可行,但gerrit仍会报告对先前提交的项目的依赖。

3 个答案:

答案 0 :(得分:13)

这是Gerrit依赖关系的意思 - 在另一个提交之上的提交。如果两者都在审核中,则较新的一个取决于较旧的那个。

如果您不希望它们彼此依赖,请不要在彼此之上创建提交。创建一个提交,然后根据master创建一个新的分支,用于下一次提交

(git checkout origin/master -b NEW_BRANCH_NAME)

当您推送第二次提交以供审核时,它的父级已经发布,并且不依赖于任何内容。

答案 1 :(得分:0)

我已经被教导要在每个git reset --hard HEAD~1后执行git push来解决这个问题。

答案 2 :(得分:0)

作为git reset --hard HEAD~1的变体,我改用它:

git reset --hard origin/master

假设我正在master工作以进行快速更改。

否则,首选在主题分支中工作。

有许多Git脚本可以帮助管理主题分支:

我确定还有其他人。