Git不会添加某些globs

时间:2015-09-30 18:15:54

标签: git bash

我在这个上留下了挠头。因此,在OSX上的git中,您可以添加如下文件:

git add *.java

它将添加具有* .java扩展名的所有文件。同样适用于.txt,json等。但是,当我做一个

git add *.xml
没有任何反应。它没有在我的gitignore中指定,因此git使用git status将其报告为已更改,但我似乎无法使用通配模式添加。

我没有问如何按模式递归添加文件,git,(或bash?)已经这样做了,正如我的第一个例子中所解释的那样。

系统:

  • OSX 10.10.5
  • GNU bash,版本3.2.57(1)-release(x86_64-apple-darwin14)
  • git version 2.3.8(Apple Git-58)

2 个答案:

答案 0 :(得分:4)

引用glob,使其传递给git进行处理,而不是由shell扩展。

git add '*.xml'

答案 1 :(得分:0)

  

它们是嵌套的,因此根中有一些,子文件夹中有一些等等。

git add只会在当前目录中添加的XML文件。 Shell globbing不包含子目录。这是一件普通的事情。

如果将文字glob传递给git add '*.xml' ,它将以递归方式应用它。

git-add

这是git add **/*.xml 的一项功能。如果你想要这样的东西,你可以turn on recursive globbing in bash 4

find

或者您可以使用xargsfind . -name '*.xml' | xargs git add

fname = %subst(fname:1:1);