我有一个奇怪的案例 - 我的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
答案 0 :(得分:4)
您不应该像参数之类的选项(如--all
)(如文件名)。所以尝试切换它们:
git add --all *
此外,如果文件名以减号开头,则会将其误解为一个选项(文件-Clown
看起来像命令行上的程序-C -l -o -w -n
}。要缓解这种情况,您可以使用--
停止选项解析:
git add --all -- *
答案 1 :(得分:1)
开关应该在文件列表之前 - 我猜你有一个名为C
的文件,*
由shell扩展。但请注意,使用--all
时,您无需提供文件列表:
git add --all
答案 2 :(得分:0)
您可能正在Powershell控制台中运行。 (那是我的情况)
(如果要将输出保留在同一控制台窗口中,则可以通过file = open('file.txt', 'r').read()
print(file.split('CHAIN'))
# if you want to remove the new spaces (\n)
print([text.strip() for text in file.split('CHAIN')])
在控制台中启动“普通”命令。(尽管它将具有自己的历史记录),然后通过{ {1}}。)