96

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

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

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

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


仅供参考:根据接受的问题评论,我的.gitconfig别名现在如下所示:

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

3 回答 3

134

与其做--all然后尝试过滤掉存储,不如一开始就包括它们:

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

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

于 2012-02-24T21:51:38.613 回答
10

我的别名:

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

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

  • git l对于当前分支
  • git l feature234对于特定的分支
  • git l --all对于整个历史

从手册:

--exclude=<全局模式>

不要包含匹配下一个--all、--branches、--tags、--remotes 或--glob 否则会考虑的引用。

于 2017-05-11T11:14:22.833 回答
5

请注意,Andrew 的答案不适用于隐藏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 的功能(即向堆栈推送/弹出补丁)。

于 2012-09-29T12:23:16.137 回答