-1

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

或者让我们说一些类似开关的东西?

4

1 回答 1

3

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

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

于 2013-07-22T04:30:59.767 回答