如何通过位于不同目录中的模式(或 glob)递归地添加文件?
例如,我想用一个命令添加A/B/C/foo.java和D/E/F/bar.java(以及其他几个 java 文件):
A/B/C/foo.java
D/E/F/bar.java
git add '*.java'
不幸的是,这并没有按预期工作。
如果某些要添加的文件可能尚未被跟踪,Sergio Acosta的回答可能是您最好的选择。如果你想限制自己使用 git 已经知道的文件,你可以结合git-ls-files一个过滤器:
git-ls-files
git ls-files [path] | grep '\.java$' | xargs git add
Git 本身并没有提供任何花哨的机制来执行此操作,因为它基本上是一个 shell 问题:如何获取文件列表以作为给定命令的参数提供。