如何阻止自己使用“git commit -a”?
Posted
技术标签:
【中文标题】如何阻止自己使用“git commit -a”?【英文标题】:How can I stop myself from using 'git commit -a'? 【发布时间】:2014-12-02 16:50:20 【问题描述】:我承认有时我不应该使用git commit -a
。大约有一半的时间是反射性的,通常是当我认为我在单独的存储库中工作时 - 但我实际上是在一个更大的存储库中工作,这会影响广泛的目录。 p>
是否有我可以指定的.git/config
设置会导致-a
标志引发错误?
【问题讨论】:
我看不到。你可以破解 commit.c 就是这样。 相关:***.com/questions/25884007/disable-git-add-command/… 有人能告诉我为什么 -a 不好吗? 【参考方案1】:感谢 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【参考方案2】:是否有我可以指定的 .git/config 设置会导致 -a 标志引发错误?
我不知道。
你需要一个 git 包装器来检查参数(“commit
”、“-a
”、...),并且在特定命令上“commit -a”会抛出错误。
Jubobs'script(在comment above 中提到)就是这种包装器的一个很好的例子。
【讨论】:
【参考方案3】:不,git 配置中没有任何内容可以执行此操作。但是,有一个解决方案,它是 git hooks。
Git 钩子是在执行 git 命令之前或之后执行的脚本 - 例如,如果没有提交消息,则有一个钩子会使您的提交失败。所以你可以为你的需要编写一个 costum 钩子,当提交马虎时它就会下降。
但是,就个人而言,我不会失败,而是显示一个额外的提示(例如“你确定吗?Y/N”)。想一想,你真的要永远屏蔽这个功能吗?
更多信息: http://git-scm.com/book/en/Customizing-Git-Git-Hooks
祝你好运!
【讨论】:
如果我有一种简单的方法来检测“草率”提交,这将起作用,但是当我可以用另一种更简单的方法来做时,把这么多的逻辑放进去似乎很浪费。但是感谢您的想法,这是一个很好的想法!以上是关于如何阻止自己使用“git commit -a”?的主要内容,如果未能解决你的问题,请参考以下文章