我可以手动阻止一些git提交选项,比如“-a”吗?

时间:2013-07-22 04:16:12

标签: git

我不应该在某个时候使用git commit -a,所以我想知道有没有办法阻止它?

或者让我们说这样的开关?

1 个答案:

答案 0 :(得分:3)

顺便说一句,不是“阻止”git commit -a发生,你可能只是习惯不这样做,如果你偶然发现,请用git reset HEAD^跟进,然后尝试再次提交。

否则,这里有两种方法:

如果使用--no-all作为git commit的最后一个参数,它将取消任何-a(这意味着在命令行中先前指定的--all。示例:

承诺一切:

git commit -a

不要真的承诺一切:

git commit -a --no-all

至于如何自动将这个命令附加到任何git commit命令,我不确定除了一些shell魔法之外的简单方法(例如git命令的智能包装器),如git不允许你为commit设置别名,因为它是一个内置命令。

使用附加 - “ - no-all”技巧不幸地打破了git commit args... --- files...形式。所以这是另一种方式:

这是一个可以放在路径中的包装器。称之为git并确保它位于“真实”git之前的路径中,并将PATH_TO_GIT指向真正的git。

#!/bin/bash

PATH_TO_GIT=/usr/bin/git

if [ "$1" = "commit" ]; then
    exec $PATH_TO_GIT "${@/#-a/}"
else
    exec $PATH_TO_GIT "$@"
fi

这确实有一些限制,但似乎它会做你想要的。