2014-07-25 56 views
2

当我键入为什么不会“git add *”添加“git status”所表示的未分档文件?

git add * 

好像有添加任何文件,但是当我做

git status 

它表明是不分级的文件,它的行为。如图所示,我可以通过手动输入名称来对其进行分类,但在相同情况下需要相当长的一段时间。

我的问题是,为什么在这种情况下,我不能只输入“git add *”来添加unstaged文件,我应该如何解决这个问题?先谢谢你。

此图片显示我遇到http://i.imgur.com/YjqZ85P.png

+0

键入命令“git log --graph --decorate”并显示图像 –

+1

您可以显示“ .gitignore'? – gravetii

+0

'git add -u'或'git add -A'有效吗? –

回答

5

如果您要添加的所有文件,不要使用行为“*”(这是由shell解释)

git add . 

git add -u将增加更新的文件。 git add -A .结合了两者。
请参阅“What's the difference between git add . and git add -u?
也是“Difference between “git add -A” and “git add .””:

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

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


正如在“What's the difference between git add * and git add ., if any?”解释说:

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

git add *将不会添加以.开头的路径,因为*的外壳扩展将这些路径视为“隐藏”路径。

torek解释in the comments为什么 '*' 在这个特殊的情况下失败:

在这种特殊情况下

git add *成为

git add Bootstrap afile bfile ... index.php main.js ... zfile 

或一些这样的,和git add *以一个胖子停下来人错误因为你告诉它:

  • “不通过.gitignore添加Bootstrap”,并
  • “不通过显式路径添加引导”

它不知道该服从,所以它什么都不做。

+0

另外使用'git add -u'来添加所有更新的文件和'git add -A'来添加所有文件,甚至是未跟踪的文件和删除文件。 +1检查忽略。 –

+0

这样做有一段时间的作品。你能否更准确地解释这段时间的含义?例如,我通过“*”添加了所有未分离的更改。谢谢。 – Connorelsea

+0

有人可以解释。,-u和-a之间的区别。谢谢!这对我来说真的很有帮助。 – Connorelsea

0

检查您是否真的要忽略目录Bootstrap/,您认为该目录位于您的.gitignore中。另外,正如@VonC在他的回答中提到的,将当前目录添加到临时区域的正确方法是git add .

相关问题