Does git support wildcards in paths?

冷暖自知 提交于 2019-12-03 01:05:51

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/*

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

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

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.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!