Git未知开关“C”

Git未知开关“C”,git,git-add,Git,Git Add,我有一个奇怪的例子——我的git在大约一个小时前还可以正常工作,但现在当我试着跑步的时候 git add * --all 我收到一个错误,说错误:未知开关'C' 下面是我得到的输出。我刚从有一些变化的回购中退出,之后我开始出现这个错误。尝试了一下,发现错误是由*符号引起的。如果我把它去掉,它就行了 $ git add * --all error: unknown switch `C' usage: git add [options] [--] <pathspec>... -n,

我有一个奇怪的例子——我的git在大约一个小时前还可以正常工作,但现在当我试着跑步的时候

git add * --all
我收到一个错误,说错误:未知开关'C'

下面是我得到的输出。我刚从有一些变化的回购中退出,之后我开始出现这个错误。尝试了一下,发现错误是由*符号引起的。如果我把它去掉,它就行了

$ git add * --all
error: unknown switch `C'

usage: git add [options] [--] <pathspec>...

-n, --dry-run         dry run
-v, --verbose         be verbose

-i, --interactive     interactive picking
-p, --patch           select hunks interactively
-e, --edit            edit current diff and apply
-f, --force           allow adding otherwise ignored files
-u, --update          update tracked files
-N, --intent-to-add   record only the fact that the path will be added later

-A, --all             add changes from all tracked and untracked files
--ignore-removal      ignore paths removed in the working tree (same as --no-all)
--refresh             don't add, only refresh the index
--ignore-errors       just skip files which cannot be added because of errors
--ignore-missing      check if - even missing - files are ignored in dry run

您不应该在文件名等参数之后有-all-like这样的选项。所以试着换个角度:

git add --all *
此外,如果文件名以负号开头,它将被错误地解释为一个选项,对于命令行上的程序来说,文件小丑看起来像选项-C-l-o-w-n。要缓解此问题,可以使用-,停止选项解析:


开关应该放在文件列表之前-我猜您有一个名为C的文件,shell将*扩展到该文件。但是,请注意,使用-all,您不需要提供文件列表:

git add --all

您可能正在Powershell控制台中运行。那是我的案子


如果希望将输出保持在同一控制台窗口中,则可以通过cmd在控制台中启动一个普通命令。它将有自己的历史记录,不过您可以在退出时将其保留。

您有一个名为-C的文件,因此add*将变成add-C file1 file2….谢谢@torek,找到了该文件并将其删除。如果其他人正在寻找类似的内容,请在正确的情况下使用rm--c[-阻止命令解析参数]删除该文件,正如Mureinik指出的那样,-all和*的组合没有意义。也许你想提一下。
git add --all