效率云

    安装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

    上一篇
    用rebase得到线性历史
    下一篇
    iCode常见问题