如何在git checkout命令中使用regex来指定文件子集

use*_*582 13 regex git

假设我正在尝试签出一组特定的git文件,例如app/*^(.tmpl).html,

如何把这个正则表达式扔进去 git checkout branch -- (regex)

Von*_*onC 18

正如" 有没有办法使用通配符git checkout "

Git不处理通配符,但你的shell确实如此.

正如下面提到的,你需要躲避通配符为了让git去解释它:afile\*,或使用简单的报价.

所述的实施例部分中git checkout显示了一个通配符的使用:

rm hello.c
git checkout -- '*.c'
Run Code Online (Sandbox Code Playgroud)

注意周围的引号*.c.
该文件hello.c也将被检出,即使它不再在工作树中,因为文件通配符用于匹配索引中的条目(而不是由shell在工作树中).

例如,另一种方法是使用find(如" " git add *.js"未在子目录中添加文件 ")

find . -name '*js' -exec git checkout {} \;
Run Code Online (Sandbox Code Playgroud)

你可以试试你的正则表达式 find --regex


aug*_*aug 6

只是更新这个答案,但我能够git checkout使用通配符,所以我相信这是可能的.我正在运行git版本1.9.3.

  • 请注意,必须转义星号,但是:`git checkout foo\*` (5认同)