在等待Gerrit的评论时,我如何处理多个修复工作?

mim*_*lea 2 git gerrit

我一直在网上搜索,找不到确切的答案.

我已经在git flow模型下使用git 几年了.我最近换了工作,在这里,我们使用Gerrit.

使用Gerrit,除了其他限制之外,我似乎找不到合适的方法来处理2个单独的修复/功能并同时查看它们.据我所知,我必须在主分支之上工作,并且一次只能推送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
Run Code Online (Sandbox Code Playgroud)

然后,两个人会在我的代码合并到主人或开发分支并正确标记之前检查我的代码.

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

Sol*_*low 6

我只是一个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
Run Code Online (Sandbox Code Playgroud)

当我想要处理已经存在于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
Run Code Online (Sandbox Code Playgroud)

这些reset --hard线很少成为问题,因为就像我说的那样,我在本地工作树中没有保留任何重要内容.

唯一的技巧是,如果我有两个或更多的打开更改触摸同一个文件,我可能不得不做一个手动git合并来排序.这并不比我和其他一些开发人员试图同时更改同一个文件更糟糕.