536 votes

Impossible d'afficher une arborescence Git dans le terminal

Ancien article de Killswitchcollective.com, 30 juin 2009 a les entrées et sorties suivantes

git co master
git merge [your_branch]
git push

upstream    A-B-C-D-E            A-B-C-D-E-F-G
                 \        ---->               \
your branch       C-D-E                        G

Je suis intéressé par la façon dont vous obtenez une vue arborescente des commits dans votre terminal sans utiliser Gitk ou Gitx dans OS/X.

Comment obtenir une vue arborescente des commits dans le terminal ?

2 votes

Ce n'est pas important pour la question, mais l'article en question n'est plus disponible. Une copie en cache est disponible via l'Internet Archive : web.archive.org/web/20110831142839/http://…

945voto

VonC Points 414372

Comment obtenir une vue arborescente des commits dans le terminal ?

git log --graph --oneline --all

est un bon début.

Vous risquez de recevoir des lettres étranges. Il s'agit de codes ASCII pour les couleurs et la structure. Pour résoudre ce problème, ajoutez ce qui suit à votre .bashrc :

export LESS="-R"

de telle sorte que vous n'avez pas besoin d'utiliser le filtre ASCII de Tig en

git log --graph --pretty=oneline --abbrev-commit | tig   // Masi needed this 

L'article graphique textuel à partir de Git-ready contient d'autres options :

git log --graph --pretty=oneline --abbrev-commit

git log graph

En ce qui concerne l'article que vous mentionnez, j'opterais pour Réponse de Pod : production artisanale ad-hoc.


Jakub Narebski mentions dans les commentaires tig une interface en mode texte basée sur les ncurses pour git. Voir leurs sorties .
Il a ajouté a --graph option en 2007.

1 votes

Je viens de le tester sur mon repo. Cela fonctionne mais je suis sous Windows avec MSysGit1.6.3.

0 votes

Files.getdropbox.com est bloqué ici au travail :( Je verrai votre photo dans environ une heure, le temps de rentrer chez moi.

0 votes

@Vonc : J'ai maintenant tapé deux pour la première commande. J'obtiens une vue similaire à celle de l'image pour la deuxième commande.

352voto

Marouane Points 1653

Une solution consiste à créer un Alias dans votre fichier .gitconfig et l'appeler facilement :

[alias]
    tree = log --graph --decorate --pretty=oneline --abbrev-commit

Et quand vous l'appellerez la prochaine fois, vous l'utiliserez :

git tree

Pour le mettre dans votre ~/.gitconfig sans avoir à l'éditer, vous pouvez le faire :

git config --global alias.tree "log --graph --decorate --pretty=oneline --abbrev-commit"  

(Si vous n'utilisez pas le paramètre --global, il sera placé dans le fichier .git/config de votre dépôt actuel).

3 votes

Comment se fait-il que ce ne soit pas un alias par défaut ? Je suppose que cela rendrait le CLI de Git légèrement moins exaspérant à utiliser et nous ne pouvons pas avoir cela...

141voto

Sebastian Patten Points 1301
git log --oneline --decorate --all --graph

Un arbre visuel avec les noms des branches inclus.

Utilisez ceci pour l'ajouter comme alias

git config --global alias.tree "log --oneline --decorate --all --graph"

Vous l'appelez avec

git tree

Git Tree

2 votes

Très joli, celui-là. Je l'utilise en combinaison avec less -S comme décrit aquí afin d'éviter que les lignes enveloppées n'obscurcissent l'arbre.

0 votes

Sébastien : ty 4 alias

69voto

Mohsen Points 16856

tig

Si vous voulez un interactive vous pouvez utiliser tig . Il peut être installé par brew sur OSX et apt-get dans Linux.

brew install tig
tig

Voilà ce que vous obtenez :

enter image description here

7voto

Saxophonist Points 581

Je suggère à quiconque d'écrire la commande complète

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

plutôt que de créer un alias.

C'est bien de se mettre les commandes dans la tête, pour les connaître par cœur. c'est-à-dire ne pas dépendre des alias lorsque vous changez de machine.

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