如何在git-for-each-ref中正确使用--stdin选项?
解决git-for-each-ref --stdin选项报错问题
错误原因
当使用--stdin选项时,命令行中不能同时指定任何引用模式参数。你之前的命令里既在命令行写了'refs/heads/**',又添加了--stdin,这两个参数冲突,导致出现fatal: unknown arguments supplied with --stdin错误。
正确用法示例
要获取alpha或beta前缀的所有本地分支,需将所有引用模式通过标准输入传入,命令行仅保留--stdin(及其他非模式参数,比如--format):
方式1:echo管道传递模式
注意使用-e参数让echo解析换行符:
echo -e 'refs/heads/alpha/**\nrefs/heads/beta/**' | git for-each-ref --stdin
方式2:Here-String传递模式
用$''包裹字符串,让bash解析转义的换行符:
git for-each-ref --stdin <<< $'refs/heads/alpha/**\nrefs/heads/beta/**'
自定义输出格式
如果需要更简洁的输出(比如只显示分支名),可以添加--format参数:
echo -e 'refs/heads/alpha/**\nrefs/heads/beta/**' | git for-each-ref --stdin --format='%(refname:short)'
内容的提问来源于stack exchange,提问作者Lucas S. G.
相关产品推荐
相关产品推荐

