为什么不"git add*"添加"git status"所说的文件没有进入?

Con*_*sea 2 git

当我输入

git add *
Run Code Online (Sandbox Code Playgroud)

它表现得好像没有添加任何文件,但是当我这样做时

git status
Run Code Online (Sandbox Code Playgroud)

它显示了未分级的文件.我可以通过手动输入名称来对其进行分级,如图所示,但在相同的情况下需要相当长的时间.

我的问题是,在这种情况下,为什么我不能只输入"git add*"来添加未分段的文件,我该如何解决这个问题呢?先感谢您.

此图显示了我遇到的行为http://i.imgur.com/YjqZ85P.png

Von*_*onC 5

如果要添加所有文件,请不要使用'*'(由shell解释)

git add .
Run Code Online (Sandbox Code Playgroud)

git add -u会添加更新的文件.git add -A .将两者结合起来.
请参阅" 之间有什么区别?git add .git add -u "
还有"git add -A"和"git add"之间的区别. ":

.指示命令,在当前的子目录,而不是整个工作树进行操作.

如果你想知道文件是否被忽略:git check-ignore -v -- yourFile.


如" 之间有什么区别?git add *git add . "中所述:

git add *将增加所有可在结果路径的外壳扩展*,而git add .会告诉混帐添加当前目录.

git add *不会添加以a开头的路径.作为shell扩展,*将这些视为"隐藏"路径.

torek 在评论中解释为什么' *'在这种特殊情况下失败:

在这种特殊情况下,git add *成为

git add Bootstrap afile bfile ... index.php main.js ... zfile
Run Code Online (Sandbox Code Playgroud)

或者其他一些,因为你告诉它而git add *停止了致命的错误:

  • "不要添加Bootstrap通过.gitignore",和
  • "通过显式路径添加Bootstrap"

它不知道应该服从哪个,所以它什么都不做.