Git在log中显示所有分支(但不显示stash)

44u64gxh  于 2023-03-21  发布在  Git
关注(0)|答案(3)|浏览(158)

我有一个Git别名,扩展为:

git log --graph --oneline --all --decorate

根据man git log,有几个可疑的选项:--not--branches;但我不能让它正常工作
我该怎么编辑才能隐藏藏起来的东西?

仅供参考:根据accepted question和注解,我的.gitconfig别名现在看起来像这样:

[alias]
    l = log --branches --remotes --tags --graph --oneline --decorate --notes HEAD
fzsnzjdm

fzsnzjdm1#

不要先执行--all,然后尝试过滤出隐藏内容,不要在一开始就包含它们:

git log --branches --remotes --tags --graph --oneline --decorate

之后试图过滤掉它们的主要问题是,如果stash是该分支上的最新提交(因为即使它不是分支的head,它仍然是分支的最新后代),它实际上可以从日志中过滤掉整个分支,这不是你想要的。

vltsax25

vltsax252#

我的别名:

[alias]
    l = log --oneline --decorate --graph --exclude=refs/stash

在这种情况下,您将能够使用这些表单而不显示隐藏:

  • git l用于当前分支
  • git l feature234用于特定分支
  • git l --all用于整个历史记录

来自手册:
--exclude=〈glob pattern〉
不要包含匹配的引用,否则下一个--all、--branches、--tags、--remotes或--glob会考虑这些引用。

8fq7wneg

8fq7wneg3#

注意Andrew's answer不能隐藏StGit 1.)分支<branch>.stgit(来自StGit版本0.15),否则输出会变得无用。
目前我使用以下解决方案:

$ git log --graph --oneline --decorate \
  $(git for-each-ref --format="%(refname)" refs/heads/ refs/remotes/ |
    grep -v "\.stgit$")
  • 1.)StGit(“StackedGit”)为Git提供类似Quilt/mq的功能(即向堆栈推送/从堆栈弹出补丁)。*

相关问题