Git 不会添加某些 glob

问题描述 投票:0回答:2

我对此感到摸不着头脑。因此,在 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 版本 2.3.8 (Apple Git-58)
bash git git-pathspec
2个回答
4
投票

引用 glob,以便它传递到

git
进行处理,而不是由 shell 扩展。

git add '*.xml'

0
投票

它们是嵌套的,所以有些在根目录中,有些在子文件夹中,等等。

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
© www.soinside.com 2019 - 2024. All rights reserved.