11

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

我遇到了一些问题,这让我觉得我没有正确使用 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 仍然报告对先前提交的项目的依赖。

4

3 回答 3

13

这就是Gerrit依赖项的含义——在另一个提交之上的提交。如果两者都在审查中,则较新的取决于较旧的。

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

(git checkout origin/master -b NEW_BRANCH_NAME).

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

于 2012-05-01T21:36:11.220 回答
0

我被教导通过git reset --hard HEAD~1在每个git push.

于 2012-06-07T09:04:02.320 回答
0

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

git reset --hard origin/master

假设,我正在努力master快速改变。

否则,更喜欢在主题分支中工作。

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

我确定还有其他人。

于 2013-03-13T14:25:57.747 回答