git - 在 Gerrit 中等待审查时,如何处理多个修复程序?

标签 git gerrit

我一直在网上四处寻找,找不到确切的答案。

我一直在 git flow model 下使用 git几年了。我最近换了工作,在这里,我们使用 Gerrit。

对于 Gerrit,除其他限制外,我似乎没有找到正确的方法来处理 2 个单独的修复/功能并同时审查它们。据我了解,我必须在 master 分支之上工作,并且一次只能推送 1 个提交(除非我修补我的初步审查)。这与 git 对我的意义非常不同。

在 git 中我可以这样做:

# work in a feature
git checkout -b feature/awesome
echo "nice" > nice.txt
git add nice.txt
git commit -m "My nice change"
git push -u origin feature/awesome

# work on a hotfix
git checkout -b hotfix/1.1.1
echo "fixed" > fixed.txt
git add fixed.txt
git commit -m "It's fixed"
git push -u origin hotfix/1.1.1

然后 2 个人会在我的代码被 merge 到 master 或 develop 分支并正确标记之前审查我的代码。

我知道我只需要学习这个新的 Gerrit 模型,但有人可以帮我弄清楚如何同时处理 2 个不同的评论吗?我觉得我的工作效率刚刚下降到 20%。

最佳答案

我只是一个 gerrit 用户,不是管理员,所以也许我在这里不合时宜,但为什么你不能同时在 gerrit 中进行多个开放更改?此时此刻,我在同一个项目中有四个未完成的更改。

我不保留本地分支机构。事实上,当我晚上回家时,我的工作树中很少有任何重要的东西。

当我想开始新的改变时:

git reset --hard
git fetch
git checkout master
git reset --hard origin/master

# make my changes

git add ...
git commit
git push origin HEAD:refs/publish/master

当我想处理 gerrit 中已有的一些其他更改时:

git reset --hard
git fetch ssh://mylogin@gerrit.my.employer.com/project refs/changes/nn/nnnnn/pp
git checkout FETCH_HEAD

# make my changes

git add ...
git commit
git push origin HEAD:refs/publish/master

那些 reset --hard 行很少有问题,因为就像我说的,我没有在我的本地工作树中保留任何重要的东西。

唯一的技巧是,如果我有两个或更多涉及同一个文件的打开更改,我可能必须执行手动 git merge 来将它们分类。这并不比我和其他一些开发人员试图同时更改同一个文件更糟糕。

关于git - 在 Gerrit 中等待审查时,如何处理多个修复程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32316807/

相关文章:

git - "downstream"和 "upstream"的定义

git - git reset --soft 的实际用途?

Git diff 到 HTML

gerrit - 如何找回 gerrit 放弃的提交?

git - Gerrit 不会 push 。错误 : No common ancestry

git - pull 请求是 Git 的一部分,还是 GitHub、Gerrit 和 Atlassian Stash 等工具的一项功能?

git - 像这样使用git有什么问题吗?

git-错误 : addinfo_cache failed for path 'file'

android - git push 如何与 android 的 repo 工具一起工作?

git - 如何应用从gerrit下载的补丁文件?