Affichage de l'arborescence complète des versions dans git

115

J'utilise la version en ligne de commande de Git et gitk. Je veux voir l'arborescence complète des versions, pas seulement la partie accessible à partir de la version actuellement extraite. C'est possible?

petersohn
la source

Réponses:

79

Vous pouvez essayer ce qui suit:

gitk --all

Vous pouvez dire gitkquoi afficher en utilisant tout ce qui git rev-listcomprend , donc si vous ne voulez que quelques branches, vous pouvez faire:

gitk master origin/master origin/experiment

... ou des choses plus exotiques comme:

gitk --simplify-by-decoration --all
Mark Longair
la source
292

si vous n'avez pas d'interface graphique disponible, vous pouvez également imprimer le graphique de validation sur la ligne de commande:

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

si cette commande se plaint d'une option invalide --oneline, utilisez:

git log --pretty=oneline --graph --decorate --all
tricot
la source
6
qui a besoin de gitk quand on a gitl! alias gitl = 'git log --oneline --graph --decorate --all'
Thunder Rabbit
10
alias gl='git log --oneline --graph --decorate --all'. Pourquoi taper plus que nécessaire;)
Dana Woodman
J'espère que les abréviations de ligne de commande ont été inventées avant la fin de l'onglet. Ils ne profitent qu'à ceux qui utilisent beaucoup ces commandes et à ceux qui ont des souvenirs fous.
aaaaaa
121
  1. Lorsque je suis sur mon lieu de travail avec un terminal uniquement, j'utilise:

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

    entrez la description de l'image ici

  2. Lorsque le système d'exploitation prend en charge l'interface graphique, j'utilise:

    gitk --all

    entrez la description de l'image ici

  3. Lorsque je suis dans mon PC Windows à la maison, j'utilise mon propre GitVersionTree

    entrez la description de l'image ici

somme de contrôle
la source
Réponse parfaite pour moi. Mon système d'exploitation prend en charge l'interface graphique, donc la deuxième option est ma voie à suivre, mais disons que je veux juste jeter un coup d'œil très rapidement sur le graphique à partir de la ligne de commande: y a-t-il un moyen d'éviter de taper tous ces commutateurs de la première version, ou vous tapez-les tout le temps? Je vous remercie.
rchrd
1
@rchrd Je les définirais comme alias en exécutant git config --global alias.ver "log --oneline --graph --color --all --decorate"et je n'aurais besoin de taper que git verpar la suite.
somme de contrôle
23

Il y a une très bonne réponse à la même question.
Ajout des lignes suivantes à "~ / .gitconfig":

[alias]
lg1 = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
lg = !"git lg1"
Daniil Shevelev
la source
5

La réputation ne suffit pas pour commenter la réponse de knittl, alors:

Si vous n'avez pas besoin de nom de branche ou de tag:
git log --oneline --graph --all --no-decorate

Si vous n'avez même pas besoin de couleur (pour éviter la séquence de touches lors de la sortie):
git log --oneline --graph --all --no-decorate --no-color

Vous voudrez peut-être utiliser un alias (dans .gitconfig) pour vous faciliter la vie:

[alias]
  tree = log --oneline --graph --all --no-decorate

Seule la dernière option prend effet, il est donc même possible de remplacer votre alias:
git tree --decorate

Clarkttfu
la source