我用谷歌搜索但找不到合适的答案。
我基本上想要的是能够在客户端(开发者机器)上有一个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命令?
答案 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
。