检查提交是否在提交前第一次提交

问题描述:

当前我正在使用预提交挂钩来拒绝向主分支提交(迫使我在其他分支上工作并在更改中合并)。这不允许我在新创建的回购库上进行初始提交。如果它是第一次提交,我想添加一个检查以允许在主服务器上进行提交。检查提交是否在提交前第一次提交

我已经试过这多个版本,没有运气...

if [[ `git shortlog | grep -E '^[ ]+\w+' | wc -l | tr -d ' '` == 0 -a `git symbolic-ref HEAD` == "refs/heads/master" ]] 
then 
    echo "You cannot commit in master!" 
    echo "Stash your changes and apply them to another branch" 
    echo "git stash" 
    echo "git checkout branch" 
    echo "git stash apply" 
    exit 1 
fi 

只是执行

git commit --no-verify ... 

的第一次提交。然后你的预提交钩子可以简单地应用于主分支。

+0

完美,谢谢 – Galen