Gerrit 工作流程
- 提交更改:开发者在本地仓库中进行开发,并提交更改。
- 推送到 Gerrit:开发者将提交的更改推送到 Gerrit 服务器进行代码审查。
- 代码审查:其他开发者在 Gerrit 中审查代码,提出修改建议或批准代码。
- 合并到主分支:一旦代码通过审查,合并管理员将其合并到主分支。
基本命令:
git push origin HEAD:refs/for/<branch>
这个命令是 Gerrit 中最常用的命令之一。它将当前分支的最新提交推送到 Gerrit,以便进行代码审查。
origin
:远程仓库的名称,通常是origin
。HEAD
:指向当前检出的分支的最新提交。refs/for/<branch>
:gerrit特殊的引用,用于指定目标分支进行审查。
例如,将当前分支的更改推送到 Gerrit 进行审查,以供
master
分支使用:
git push origin HEAD:refs/for/master
直接推送:
git push origin HEAD:refs/heads/<branch>
git push origin HEAD:refs/heads/master
是一个用于将当前分支的最新提交推送到远程仓库中的
master
分支的 Git 命令。这个命令通常用于在不使用 Gerrit 审查流程的情况下,直接将本地更改推送到远程分支。
git push
:这是推送命令,用于将本地仓库的更改发送到远程仓库。origin
:远程仓库的名称,通常是origin
,表示默认远程仓库。HEAD
:这是一个引用,指向当前检出的分支的最新提交。使用HEAD
可以确保推送的是当前分支的最新提交。refs/heads/<branch>
:gerrit特殊的引用,指定推送的远程分支,无需审查。
需注意权限问题,通常只有特定用户具有无需审查直接推送到远程分支的权限。
Gerrit 推送场景
- 推送本地指定分支如果本地有多个分支,可以使用本地分支名推送指定分支:
git push origin feature:refs/for/master
- 推送到远程仓库指定分支如果远程仓库除
master
分支外还有develop
分支,可以使用如下指令将本地代码推送至develop
分支:git push origin HEAD:refs/for/develop
- 推送带有审查者可以在推送时指定审查者:
git push origin HEAD:refs/for/master%[email protected]
- 无需审查直接推送
git push origin HEAD:refs/heads/master
这将把当前分支的最新提交(HEAD
)直接推送到远程仓库的master
分支(refs/heads/master
),无需经过审查。 - 推送带有主题可以为一组相关的提交指定一个主题,方便在 Gerrit 中进行管理:
git push origin HEAD:refs/for/master%topic=my-topic
- 推送带有标签在推送时可以添加标签信息:
git push origin HEAD:refs/for/master%l=Verified+1
Gerrit完整工作流程示例
- 在本地仓库中进行开发
# 创建并切换到新分支git checkout -b feature-branch# 添加文件并提交更改gitadd.git commit -m"Add new feature"
- 推送更改到 Gerrit 进行审查
git push origin HEAD:refs/for/master
- 在 Gerrit 中审查代码其他开发者会在 Gerrit 中审查你的更改,并提供反馈或批准。
- 根据反馈更新代码
# 修改代码gitadd.git commit --amend# 再次推送到 Gerritgit push origin HEAD:refs/for/master
- 合并到主分支一旦代码通过审查,合并管理员将其合并到
master
分支。
版权归原作者 守月满空山雪照窗 所有, 如有侵权,请联系我们删除。