Git показать все ветки (но не stashes) в журнале
У меня есть псевдоним Git, который расширяется до:
git log --graph --oneline --all --decorate
В соответствии с man git log
существует несколько подозрительных опций: --not
и --branches
; но я не могу заставить его работать правильно.
Как мне изменить это, чтобы скрыть скобки?
FYI: согласно принятому вопросу и comment my Теперь псевдоним .gitconfig
выглядит следующим образом:
[alias]
l = log --branches --remotes --tags --graph --oneline --decorate --notes HEAD
Ответы
Ответ 1
Вместо того, чтобы делать --all
, а затем пытаться отфильтровать штампы, никогда не включайте их в первую очередь:
git log --branches --remotes --tags --graph --oneline --decorate
Основная проблема, возникающая в связи с попыткой отфильтровать их после этого, заключается в том, что если stash является последней фиксацией на этой ветке (потому что, хотя она не является head
ветки, она все еще является последним потомком), он может фактически отфильтровать всю ветку из журнала, что не то, что вы хотите.
Ответ 2
Обратите внимание, что Andrew 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" ) предоставляет функциональность Quilt/mq как Git ( т.е. нажатие/всплывающие патчи в/из стека).
Ответ 3
Мой псевдоним:
[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 в противном случае.