Git在日志中显示所有分支(但不是stashes)

时间:2012-02-24 19:56:33

标签: git git-log git-stash

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

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

根据man git log,有几个可疑选项:--not--branches;但我不能使它正常工作。

我该如何编辑以隐藏藏匿处?


仅供参考:根据accepted questioncomment我的.gitconfig别名现在看起来像这样:

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

3 个答案:

答案 0 :(得分:100)

不要执行--all然后尝试过滤掉藏匿处,而不是首先将它们包含在内:

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

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

答案 1 :(得分:4)

我的别名:

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

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

    当前分支
  • git l
  • git l feature234针对特定分支
  • git l --all了解整体历史

从手册:

  

- exclude =< glob pattern>

     

不要包含与下一个--all, - branch, - target, - remote或--glob会考虑的refs匹配。

答案 2 :(得分:3)

请注意,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(“ St acked Git ”)为Git提供类似Quilt / mq的功能(即向/从堆栈中推送/弹出补丁。)