我不应该在git commit -a
某个时候使用,所以我想知道有没有办法阻止它?
或者让我们说一些类似开关的东西?
git commit -a
顺便说一句,您可以习惯于不这样做,而不是“阻止”发生,如果您意外地这样做,请使用 a 跟进git reset HEAD^
并再次尝试提交。
否则,这里有两种方法:
如果您--no-all
用作 的最后一个参数git commit
,它将取消任何-a
(这意味着--all
在命令行前面指定。示例:
提交一切:
git commit -a
不要真正承诺一切:
git commit -a --no-all
至于如何使它git commit
自动附加到任何命令,我不确定除了一些 shell 魔术(例如git
命令的智能包装器)之外的简单方法,因为 git 不会让你设置别名,commit
因为它是内置命令。
不幸的是,使用 append-"--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
这确实有一些限制,但它似乎会做你想做的事。