使用git log --decorate命令限制显示的引用

9

目前我在工作中有3个标准遥控器:本地备份、我的开发伙伴的工作站和托管库。我们有3或4个分支大部分时间都是活跃的,其中一个是主分支。

我会定期监控这些分支,使用以下方法:

git log --graph --oneline --decorate -15 my-branch his-repo/his-branch master other-branch

--decorate是至关重要的,因为它让我知道与我们非常不稳定的开发分支相关的事情的状态。问题在于我在装饰中看到了所有远程引用和所有分支、标签等。

有没有办法限制--decorate只输出特定的引用?在命令行上列出引用只限制显示提交,而不是显示引用。

谢谢, Mike

4个回答

4
您无法通过默认设置来限制此功能。但是,您可以使用脚本操作.git/refs并在操作后立即恢复它。:)

处理refs并不是一个坏主意,只是我还必须考虑packed-refs。也许一旦我写了这个脚本,它会找到其他用途...另一方面,一个硬编码的脚本来重命名refspacked-refs并插入一个简单的具有正确哈希值的packed-refs文件可能相当直接。我看到这个最大的危险是其他可能正在访问存储库的进程(IDE等)。 - MikeJansen
我从不将源代码控制与任何IDE集成。再说,我在.NET世界中,那里没有对OSS的信任 ;) - Adam Dymitruk
我主要使用.NET。我主要使用git源代码控制提供程序来进行快速差异、历史或责备。我主要使用TortoiseGit来显示日志。 - MikeJansen

3

Git 2.16 开始,选项 --decorate-refs-exclude 允许:

--decorate-refs=
--decorate-refs-exclude=

如果没有给出 --decorate-refs ,则假设所有引用都已包含。对于每个候选项,如果它与给定的 --decorate-refs-exclude 模式匹配或者不匹配给定的 --decorate-refs 模式,则不使用它来进行装饰。


3
不会。如果您使用decorate,它将使用所有可用名称作为装饰。--decorate=short将减少杂乱,但不会减少您要查看的总装饰数。如果需要此特定功能,您可以轻松编写一个脚本来装饰git log的输出。

1
装饰自己可能是一个选项。我必须保留 --graph 格式,因为图表和装饰对于我监控的内容至关重要。也许使用 cutpaste 可以解决问题。 - MikeJansen
@MikeJansen 如果你最终编写了类似这样的脚本,请分享 :) - Tobias J
@TobyJ - 我没有 :( 必要性还不够强烈,让我花时间去做它,也没有足够的空闲时间去做它。 - MikeJansen

0

这对我有效...

git log --decorate-refs-exclude 'refs/tags/*'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接