假设我正在尝试签出一组特定的git文件,例如app/*^(.tmpl).html
,
如何将此正则表达式引入git checkout branch -- (regex)
答案 0 :(得分:16)
如" Is there a way to use wildcards with git checkout
?"
Git不处理通配符,但你的shell会处理。
作为noted below,你需要转义通配符才能让git解释它:afile\*
,或者使用简单的引号。
example section of git checkout
显示通配符用法:
rm hello.c
git checkout -- '*.c'
请注意
*.c
周围的引号 文件hello.c
也将被检出,即使它不再在工作树中,因为文件通配符用于匹配索引中的条目(不在shell的工作树中)。
例如,另一种方法是使用find(如" “git add *.js
” did not add the files in sub-directories")
find . -name '*js' -exec git checkout {} \;
您可以使用find --regex
答案 1 :(得分:6)
刚刚更新了这个答案,但我能够git checkout
使用通配符,所以我相信现在可以做到这一点。我正在运行git版本1.9.3。
答案 2 :(得分:0)
我正在使用这样的命令组合。
如果你需要远程分支:
git checkout $(git branch -a | grep "your-key-words-here" | grep remotes)
如果您只需要本地分支:
git checkout $(git branch | grep "your-key-words-here")
使用示例
主要是开发人员根据 JIRA 中的任务编号或其他名称命名分支,因此使用这些命令您可以更快地切换到您需要的分支。
(1) 所有可用的本地分支机构:
要打开 feature/CAN2-1035_new_calculation_for_internal_transfer
分支,您应该输入命令:
git checkout $(git branch | grep CAN2-1035)
git branch
- 将返回所有本地分支(1)grep CAN2-1035
- 将过滤 (1) 的结果并仅返回包含 CAN2-1035 的结果这些命令也可以提取到一些bash命令中以简化使用。