在git commit hook上重置分支

时间:2014-02-13 15:09:16

标签: git github githooks

我用谷歌搜索但找不到合适的答案。

我基本上想要的是能够在客户端(开发者机器)上有一个git hook,它不允许它们触及分支。

实施例。

Master:我能够使用gitlab将master锁定为只有Lead的开发人员;但是,我想高手只能通过合并触摸,永远不要让任何人直接触摸主人。我想要的是一个git hook,它不会让他们提交他们要掌握的变化。

我的想法是拥有一个可以执行

的预提交挂钩
 git reset --hard 

在master上,如果有人试图在master上提交更改。

  #!/bin/sh

  if ref == 'refs/heads/master':
        print "=============================================="
        print "Error. You cannot Make Changes to Master      "
        print "=============================================="

        SOMEHOW RUN git reset --hard

会是这样的吗?我怎么能运行git命令?

1 个答案:

答案 0 :(得分:0)

#!/bin/bash

if [ "$(git symbolic-ref HEAD 2>/dev/null)" = "refs/heads/master" ]
then
    echo "Cannot make changes to master"
    exit 1
fi
exit 0

pre-commit挂钩退出非零会中止提交。无需删除所有更改,因为他们忘记切换分支,因此我省略了git reset --hard