106 votes

Afficher toutes les branches Git (mais pas les stashs) dans le log

J'ai un alias Git qui se développe comme suit :

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

selon man git log il y a quelques options suspectes : --not et --branches; mais je n'arrive pas à le faire fonctionner correctement.

Comment dois-je modifier cela pour masquer les éléments mis en réserve?


Pour votre information : selon la question acceptée et le commentaire mon alias .gitconfig ressemble maintenant à ceci :

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

144voto

Andrew Marshall Points 43955

Plutôt que de faire --all puis essayer de filtrer les stashes, ne les incluez jamais dès le départ :

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

Le principal problème qui découle de la tentative de les filtrer par la suite est que si le stash est le commit le plus récent sur cette branche (parce que même s'il n'est pas la tête de la branche, c'est toujours le descendant le plus récent de celle-ci), il peut effectivement filtrer toute la branche du journal, ce qui n'est pas ce que vous voulez.

17voto

five Points 69

Mon alias:

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

Dans ce cas, vous pourrez utiliser ces formes sans afficher le stash:

  • git l pour la branche actuelle
  • git l feature234 pour une branche spécifique
  • git l --all pour l'historique global

D'après le manuel:

--exclude=

Exclure les refs correspondant à ce que le prochain --all, --branches, --tags, --remotes, ou --glob considérerait autrement.

5voto

Jakub Narębski Points 87537

Notez que la réponse d'Andrew ne fonctionnerait pas pour cacher les branches StGit1.) .stgit (à partir de la version 0,15 de StGit) qui autrement encombrent la sortie en la rendant inutilisable.

Actuellement, j'utilise la solution suivante:

$ git log --graph --oneline --decorate \
  $(git for-each-ref --format="%(refname)" refs/heads/ refs/remotes/ |
    grep -v "\.stgit$")

1.) StGit ("Stacked Git") fournit une fonctionnalité similaire à Quilt/mq à Git (c'est-à-dire pousser/tirer des patches d'une pile).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X