当为git for-each-ref
指定--format
参数时,我可以使用内插值作为另一个内插值的参数吗?具体来说,我想查看不同远程上分支的前后计数,所以我想将分支名称内插到%(ahead-behind)
中作为%(ahead-behind:origin/%(refname:strip=3))
。
我可以通过使用固定引用(如HEAD
)来使用%(ahead-behind)
而不使用嵌套插值:
$ git for-each-ref \
--format='%(refname:strip=3) %(ahead-behind:HEAD)' \
refs/remotes/oldlaptop
字符串
但是,当我尝试嵌套插值以引用不同远程上具有相同名称的分支时,我得到了一个错误:
$ git for-each-ref \
--format='%(refname:strip=3) %(ahead-behind:origin/%(refname:strip=3))' \
refs/remotes/oldlaptop
fatal: failed to find 'origin/%(refname:strip=3'
型
还有其他语法可以用吗?
1条答案
按热度按时间wnavrhmk1#
不幸的是,看起来这个选项的编码是“将所有引用与固定引用进行比较”。
一个用例是:对于每个分支,查看如果打开一个合并请求,您将有多少提交提前/延迟
例如这篇文章:
https://github.blog/2023-06-01-highlights-from-git-2-41/(搜索“如果你在GitHub上查看过仓库的分支页面.”段落)
代码(参见
ref-filter.c
1l.957和l.888)还显示,只要格式字符串被解析,:committish
引用就被转换为提交散列 * 一次 *-而不是:在每次迭代时重新解释。解决方法是在输出行上循环,并执行一个新命令以获得提前/落后计数。
下面是一个示例:
字符串
@jthill建议使用以下变体:让
git for-each-ref
打印命令,为每个引用运行:型
master
分支的1个状态2023-12-14