我经常使用以下git-log
命令:
git log --oneline --graph --decorate --all
这个命令对我来说很完美,只有一个例外。我在refs
中保留了一组refs/arch/
我希望保留(" arch"代表"存档"),但我不想看到他们每次看我的git日志。如果他们是现有branch
或tag
的祖先,我不介意他们出现,但我真的不希望看到本来不会提交的一系列提交显示在git日志中,但事实上它们位于给定refs/arch/*
ref
的提交历史记录中。
例如,在下图中,左侧是我在运行git log --oneline --graph --decorate --all
时所看到的内容的图示。如您所见,如果refs/arch/2
不存在,则ref
引用的提交不会显示在日志中。 (假设左侧图像中没有显示不的refs
。)现在,右侧是两个备选日志图的图示,其中任何一个都是完全没问题。我不介意看到任何与refs/arch/*
匹配的内容,只要它在branch
或tag
的提交历史记录中。但是,在下图中,我绝对不希望看到refs/arch/2
引用的提交。
如何修改git-log
命令以在插图中描述的任何一种意义上抑制refs/arch/*
?
答案 0 :(得分:6)
你想要的是:
git log --oneline --graph --decorate --exclude 'refs/arch/*' --all
--exclude
选项为new in git 1.9.0。
从git-log手册页:
--exclude=<glob-pattern>
不要在
<glob-pattern>
中添加与下一个--all
,--branches
,--tags
,--remotes
或{{ 1}}否则会考虑。重复此选项会累积排除模式,直到下一个--glob
,--all
,--branches
,--tags
或--remotes
(其他选项或参数不会清除累积)模式)。应用于
--glob option
,refs/heads
或refs/tags
时,所提供的模式不应以refs/remotes
,--branches
或--tags
开头,分别在应用于--remotes
或refs/
时,必须以--glob
开头。如果打算使用尾随--all
,则必须明确指定。
如果您使用某种Ubuntu,可以从the Ubuntu Git Maintainers team ppa升级git。
/*
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update