共计 1356 个字符,预计需要花费 4 分钟才能阅读完成。
第一次在公司见到 Gerrit、一面懵逼。什么 xx 玩意 …..
Gerrit,一种凋谢源代码的代码审查软件,应用网页界面。利用网页浏览器,同一个团队的软件开发者,能够互相审阅彼此批改后的代码,决定是否可能提交,回退或是持续批改。它应用版本控制系统 Git 作为底层。
它分支自 Rietveld,作者为 Google 公司的 Shawn Pearce,原先是为了治理 Android 我的项目而产生。[2]这个软件的名称,来自于荷兰设计师赫里特·里特费尔德(Gerrit Rietveld)。
—– 来自 wiki
而后公司同时还应用到了 GitLab、我懵逼了。失常来说、GitLab 曾经能满足大部分日常到应用了、到底为啥还要应用 Gerrit。
它分支自 Rietveld,作者为 Google 公司的 Shawn Pearce,原先是为了治理 Android 我的项目而产生。[2]这个软件的名称,来自于荷兰设计师赫里特·里特费尔德(Gerrit Rietveld)。
=== GitLab wiki
起初理解到它们两者之间的关系和角色、相似如下图片
公司给到的 GitLab 账号角色是 Reporter、只能 pull 而不能 push,如果想要 push 代码到分支上、只能先 push 到 Gerrit 中、Gerrit 可能存在代码插件或者人工 review、通过之后能力 push 胜利。Gerrit 和 GitLab 之间会做同步、所以你能即时的在 GitLab 中看到你 push 的代码。
应用 Gerrit 的时候会将一个 hook 脚本搁置在你的我的项目的 .git/hooks 中、
外面有各种 hook 的脚本、只有你将后缀.sample 去掉就会在特定的时候执行。
应用 Gerrit 的时候会用其中的一个脚本在你的 commit comment 中减少一个 Change-Id 的随机值
在 Idea 中 commit 的时候、如果你的我的项目中存在 hook 脚本、则会呈现是否执行 hook 脚本的选项
咱们尝试在 commit 之前进行一次 compile、因为有时候 push 到近程仓库的代码可能并不能编译通过(把不能失常运行甚至不能编译通过的代码 push 下来、真的会影响其余共事开发)
咱们在 pre-commit 中、减少以下命令、因为我的我的项目是多个模块的、所以还要进去到具体子模块中的 pom 文件中。执行的时候目录是在跟 .git 目录在同一层的
而后进行 commit
能够在执行 commit 之前的确执行了一次 compile。如果执行 hooks 的时候返回 非 0 就会阻止此次 commit
应用 Gerrit 还有一个点就是、push 的时候不能间接 push 到原来的近程分支
# 这样子是 push 会间接绕过 Gerrit 的代码审阅、所以不能 push 胜利
git push origin master
# 这样子能力
git push origin head:refs/for/master
https://www.cnblogs.com/kevingrace/p/5651447.html
https://zh.wikipedia.org/wiki/GitLab
https://zh.wikipedia.org/wiki/Gerrit
用 GitLab 吧间接(不须要 Gerrit 配合),界面十分好看,应用办法也很简略,而且也能满足之前的代码审核的要求。所以大家也都转去 GitLab 吧。