Recursively add files by pattern

filepattern, git, glob

Solution

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.

Problem

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.

Original source

Related problems