如何阻止自己使用' git commit -a'?

时间:2014-10-08 05:42:47

标签: git

我承认,有时我不会使用git commit -a。它大约有一半时间反射,通常当我认为我在不同的存储库中工作时 - 但我实际上工作的是更大的一个会影响目录的范围。

我可以指定.git/config设置会导致-a标志出错吗?

3 个答案:

答案 0 :(得分:2)

感谢VonC,我修改了一个卡在我的rc文件中的函数:

git() {
    if [[ ($1 == "add") || ($1 == "stage") || ($1 == "commit") ]]; then
        if [[ $@ == *-a* ]]; then
            echo "Don't use 'git $1 -a'.";
        else
            command git "$@";
        fi
    else
        command git "$@";
    fi;
}

答案 1 :(得分:1)

  

我可以指定一个.git / config设置会导致-a标志抛出错误吗?

不是我知道的。

你需要一个git的包装器来检查参数(“commit”,“-a”,...),并且在特定的命令“commit -a”中会抛出一个错误。

Jubobs'script(在comment above中提到)是这种包装器的一个很好的例子。

答案 2 :(得分:1)

不,git配置中没有任何内容可以执行此操作。但是,有一个解决方案,它是git hooks。

Git钩子是在执行git命令之前或之后执行的脚本 - 例如,如果没有提交消息,则有一个钩子会导致提交失败。因此,您可以根据需要编写一个costum hook,当提交很草率时,它会下降。

然而,就个人而言,我不会失败,而是显示一个额外的提示(例如“你确定吗?是/否”)。想想看,你真的想永远阻止这个功能吗?

更多信息: http://git-scm.com/book/en/Customizing-Git-Git-Hooks

祝你好运!