Git hooks

Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。 客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。 你可以随心所欲地运用这些钩子。

钩子都被存储在 Git 目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks 。 当你用 git init 初始化一个新版本库时,Git 默认会在这个目录中放置一些示例脚本。 这些脚本除了本身可以被调用外,它们还透露了被触发时所传入的参数。 所有的示例都是 shell 脚本,其中一些还混杂了 Perl 代码,不过,任何正确命名的可执行脚本都可以正常使用 —— 你可以用 Ruby 或 Python,或任何你熟悉的语言编写它们。 这些示例的名字都是以 .sample 结尾,如果你想启用它们,得先移除这个后缀。

把一个正确命名(不带扩展名)且可执行的文件放入 .git 目录下的 hooks 子目录中,即可激活该钩子脚本。 这样一来,它就能被 Git 调用。接下来,我们会讲解常用的钩子脚本类型。

参考

Read More

Gerrit使用笔记

Gitlab、Github的Pull Request功能可以进行Code Review,但Gerrit更强大,可以搭配Jenkins、LDAP等在企业内部搭建完善的Code Review流程。这里记录下自己对其的了解,方便在工作中使用它。

安装

1
2
3
4
5
6
7
8
9
10
11


# 下载war包
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.1.3.war

# 安装
java -jar gerrit*.war init --batch --dev --install-all-plugins -d ~/gerrit_testsite
# —batch 默认使用一些配置
# —dev 开发环境
# -d 安装目录
# --install-all-plugins 安装插件

文件夹结构

  • bin:命令存放目录

Read More