安装hook

1.下载代码库时的安装hook是干什么用的?
安装了此hook后,每次push会进行相应的检查,检查合格才能入库。
2.commit-msg是运行在客户端的一个git hook
它在每次git commit的时候自动往commit message末尾附加一行随机的change-id,如下图

commit 35f59303f16e31a378742231594b34d0e0721482
Author: yangyang22    <yangyang22@baidu.com>
Date:   Mon Oct 31 20:05:28 2016 +0800

haha again

Change-Id: I9be49fa665d9bd2a5e1cbbb26ed37b6105461ace</yangyang22@baidu.com>

在iCode(Gerrit) 提交流程中

#1) 产生新commit A1
$ git commit
#2) 发起CR
$ git push orgin HEAD:refs/for/master
#
# O -- A1 (master, refs/changes/23/123/1)
#
#3.替换旧commit A1,得到新的A2
$ git commit --amend
#4) 更新CR,同第2步
$ git push orgin HEAD:refs/for/master
#
# O -- A1 (refs/changes/23/123/1)
#   \
#     A2 (master, refs/change/23/123/2)
#

A1和A2因为有相同的change-id,可以被iCode识别为同一个CR的新旧2个版本

如果没有change-id,则会被识别为2个不同的CR(显然不是我们想要的结果)

了解更多关于change-id的说明:https://review.openstack.org/Documentation/user-changeid.html