检查提交是否是预提交挂钩中的第一次提交

时间:2012-06-02 20:54:30

标签: git githooks pre-commit-hook

目前我正在使用预提交挂钩来禁止提交到主分支(强制我在其他分支上工作并合并更改)。这不允许我对新创建的repo进行初始提交。如果是第一次提交,我想添加一个检查以允许在master上提交。

我尝试了多个版本但没有运气......

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

1 个答案:

答案 0 :(得分:2)

只需执行

git commit --no-verify ...

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