繁体   English   中英

重置git commit钩子上的分支

[英]Reset branch on git commit hook

我在Google周围搜索,但找不到正确的答案。

我基本上想要的是能够在客户端(开发人员机器)上安装git钩子,该钩子不允许他们接触分支。

例如

大师:我能够使用gitlab将大师锁定为仅潜在开发人员; 但是,我希望仅通过合并来接触母版,并且永远不要让任何人直接接触母版。 我想要的是一个git钩子,它不会让他们提交他们要掌握的更改。

我的想法是拥有一个预先提交的钩子,该钩子可以

 git reset --hard 

在主服务器上,如果有人尝试提交对主服务器的更改。

  #!/bin/sh

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

        SOMEHOW RUN git reset --hard

这样的事情会工作吗? 以及如何运行git命令?

#!/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挂钩中退出非零值pre-commit中止提交。 无需删除所有更改,因为它们忘记了切换分支,因此我省略了git reset --hard

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM