git add -a 和 git add -A 之间有区别吗?

git add -a 和 git add -A 之间有区别吗?

我一直在使用前者git add -a

鉴于我们主要在区分大小写的上下文中使用 git(Linux 或 Cygwin),我很惊讶我已经摆脱了它,正如我从帮助中读到的:

$ git add -h
usage: git add [<options>] [--] <pathspec>
...
    -A, --all             add changes from all tracked and untracked files

... 这是假设小写字母“a”代表“--all”之类的意思吗?还是说它在大小写方面过于宽容了?

或者完全是别的什么?

答案1

都不是;选项 (一个破折号的小写a) 根本不存在。

$ git --version
git version 2.23.0

$ git add -a
error: unknown switch `a'
usage: git add [<options>] [--] <pathspec>...

但是,如果你使用带有破折号,任何明确的前缀都将自动扩展为完整选项,这是标准 GNU getopt() 行为。例如,所有这些命令实际上都指定了相同的--all选项:

git add --a
git add --al
git add --all

(类似地,即使它们不作为独立选项存在,--v--verb也会自动扩展为。但是,会抱怨匹配不明确。)--verbose--ignore

还有,其基本相当于提交之前。git commit -agit add --update

相关内容