我不应该在某个时候使用git commit -a
,所以我想知道有没有办法阻止它?
或者让我们说这样的开关?
答案 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
这确实有一些限制,但似乎它会做你想要的。