How do I recursively add files by a pattern (or glob) located in different directories?
For example, I'd like to add A/B/C/foo.java
and D/E/F/bar.java
(and several other java files) with one command:
git add '*.java'
Unfortunately, that doesn't work as expected.
Sergio Acosta's answer is probably your best bet if some of the files to be added may not already be tracked. If you want to limit yourself to files git already knows about, you could combine git-ls-files
with a filter:
git ls-files [path] | grep '\.java$' | xargs git add
Git doesn't provide any fancy mechanisms for doing this itself, as it's basically a shell problem: how do you get a list of files to provide as arguments to a given command.