Does git support wildcards in paths?
I have looked, searched, and read documentation and can't really find anything about this.
Basically, I wan开发者_JAVA技巧t to be able to do this:
git reset -- *.exe
or
git reset -- */some_executable.exe
Instead of this:
git reset -- some/very/long/path/some_executable.exe
Also it'd be nice to be able to do this:
git reset -- topleveldirectory/another/subdirectory/*
Instead of this:
git reset -- topleveldirectory/another/subdirectory/SomeFile.cpp
git reset -- topleveldirectory/another/subdirectory/SomFile.h
I think I can use the wildcard *
in git-add to add files, but haven't found anything that works in the case above.
Any suggestions or pointers to where I can look for more info?
Using: git version 1.7.3.1.msysgit.0 on 64-bit Windows 7
Git does support some pathspec globbing, but you need to be careful to shell-escape the characters so they aren't interpreted by in your case, msys bash, which doesn't support more sophisticated wildcard expansion.
EDIT: Also, for your reset example, you can just pass the directory as an argument to git reset and git will operate recursively.
git reset my/long/path
rather than
git reset my/long/path/*
To reset all exe files recursively from within a git folder, you can do the following:
git reset -- \*.exe
Or if you would like to add all java files within a specific sub-folder you can do that too, like this:
git add ./some/sub/folder/path/**/*.java
where ** means all folders recursively from this point in the path
In some cases however, one does need to use wildcards in a specific way to target a specific subset of files and not just all files, especially when working with git rm
, or git checkout
or git reset
. You can achieve the same by simply escaping the wild card character.
git rm app/assets/javascript/templates/projects/\*.jst.ejs
At least in the case of subfolders/subfiles, there is no need for a wildcard.
git add .
...adds the current directory (.) and everything under it. The same goes for...
git add files/
...which would add ./files
, ./files/foo.txt
, and ./files/foo/bar.txt
.
精彩评论