我怎么才能和gerrit一起做一个分支复习呢?我想分析所有的分支变化在一个gerrit变化。
其思想是检查具有多个更改(提交)的分支的代码。
发布于 2019-01-16 17:08:49
如果您想要查看一个具有多个提交的分支,那么Gerrit并不是一个合适的工具。Gerrit中的评审是在每次提交时单独执行的。Github或Bitbucket是适合分支审查的工具。
回答您的问题,一个建议: IMHO您应该尝试使用Gerrit,检查每个提交单独,因为这是一个非常好的工作流程。我非常喜欢(也更喜欢)格瑞特策略。
发布于 2021-01-14 18:22:52
我创建了一个git别名,它简化了传统的git工作流(在一个“工作”分支上进行多次提交),并使用提交消息中相同的更改Id将它们自动推送到Gerrit。它可以添加到.gitconfig文件中:
...
[alias]
gerrit = "!git reset --soft $(git rev-list master..HEAD | tail -1) && \
git commit --amend --no-edit && \
(git push origin HEAD:refs/for/master; git reset HEAD@{2})"假设:
用法:git gerrit
这项工作如下:
git reset --soft $(git rev-list master..HEAD | tail -1)git rev-list master..HEAD | tail -1获得我们在分支上创建的第一个提交的SHA-1 (在从master进行分叉之后),我将称之为“基本”提交。然后,我们将SHA-1提供给:git reset --soft,它将分支指针移回到此提交,保持所有从以后提交到分阶段提交的更改。然后:
git commit --amend --no-edit我们使用单个--amend对基提交进行分段更改。原始提交消息将被保留,因此将更改-Id。
git push origin HEAD:refs/for/master这就是一切的重点-我们推到格瑞特.
git reset HEAD@{2}最后,我们利用reflog历史恢复我们的分支的原始形状,HEAD@{2}意味着我们的头在两个步骤前( commit --amend和第一个reset之前)的修改。
优势:
git rebase -i来编辑它们(不要从“基本”提交消息修改-Id);不过,我建议保留一个经典的远程分支作为备份并对其进行同步。然后,HEAD@{2}也可以使用$(git rev-parse @{u}),这是远程分支的一个提示,而不是reflog。同样的事情也可以用于与同事共享的分支(但我们必须避免重写历史和push -f)。
https://stackoverflow.com/questions/54220722
复制相似问题