git - 如何用关键字过滤分支名称?
问题描述
我正在使用此逻辑,并且需要与此字符串“AMAZONFIX”匹配的唯一分支名称。
git for-each-ref --format='%(committerdate:short) %(authordate:relative) %(refname:lstrip=3)' --sort -committerdate refs/remotes/$REMOTE_NAME | while read date branch; do
printf "%s | %s %s %s %s %s | %50s\n" $date $branch
输出结果:
feature/core-xyz
dummy/AMAZON-bitMap
bugfix/AMAZONFIX-work
main/outlet-file
例外输出:
dummy/AMAZONFIX-bitMap
bugfix/work-place-AMAZONFIX
只有具有“AMAZONFIX”的分支名称
解决方案
如果您不想使用类似的后处理步骤| grep AMAZONFIX
,请考虑git for-each-ref --contains=...
指令(在Git 2.7 中引入,2015 年第四季度)
在您的情况下,为了便于阅读,在多行上:
git for-each-ref \
--format='%(committerdate:short) %(authordate:relative)
%(refname:lstrip=3)'
--contains=$REMOTE_NAME/AMAZONFIX --contains=AMAZONFIX
--sort -committerdate refs/remotes/origin | \
while read date branch; \
do printf "%s | %s %s %s %s %s | %50s\n" $date $branch;
done
但是,这仅适用于名为 的分支AMAZONFIX
,而不适用于xxxAMAZONFIXyyy
由于--contains
不支持通配符,grep
仍然是最佳选择:
git for-each-ref...| while... ;done | grep AMAZONFIX
推荐阅读
- netsuite - 在 isCategoryPage 方法中检测分类页面
- wpf - 无法为 Prism Project 6.3.0 加载 Prism.Wpf 7.1.0.172
- javascript - 在 asp.net 中捆绑后脚本无法正确呈现
- c# - gridview asp.net的超链接字段错误
- asp.net - 一个潜在危险的请求
- python - Lasso.py 不包含在 github.com/scikit-learn 中
- java - dagger2 注入的非作用域对象的生命是什么?
- google-api - 如何将 drive.file oauth2 范围与 Google Drive 中的文件夹一起使用?
- ubuntu - Ubuntu 18.04 GNOME Nautilus 缺少 ~/Templates 目录
- javascript - js框架只加载一次,被其他请求多次重用