我对此感到摸不着头脑。因此,在 OSX 上的 git 中,您可以添加如下文件:
git add *.java
它将添加所有具有 *.java 扩展名的文件。 .txt、json 等也是如此。但是,当我执行
git add *.xml
什么也没发生。它没有在我的 gitignore 中指定,因此 git 将其报告为使用
git status
进行了更改,但我似乎无法使用通配模式添加。
我不是问如何通过模式递归添加文件,git(或 bash?)已经这样做了,正如我的第一个示例中所解释的。
系统:
引用 glob,以便它传递到
git
进行处理,而不是由 shell 扩展。
git add '*.xml'
它们是嵌套的,所以有些在根目录中,有些在子文件夹中,等等。
git add *.xml
只会添加 XML 文件在当前目录。 Shell 通配不包括子目录。这是一个通用的外壳东西。
如果将文字 glob 传递给
git add
,它将递归地应用它。
git add '*.xml'
这是
git-add
的一个功能。如果您通常想要这样的东西,您可以在 bash 4 中打开递归通配符。
git add **/*.xml
或者您可以使用
find
和 xargs
。
find . -name '*.xml' | xargs git add