Passer au contenu
GitTree

Guides Git

Visualiseur et visionneuse d'arborescence Git : comment voir votre historique Git sous forme de graphique

Trois façons de voir votre historique Git sous forme d'arborescence : le graphique du journal git dans votre terminal, gitk et un graphique de validation GUI cliquable. Apprenez ensuite à lire les voies et les fusions et trouvez le commit dont vous avez besoin.

Écrit par KodmoraMis à jour 13 minutes de lecture
GitTree graphique de validation avec des embranchements à code couleur, des étiquettes de branchement et de balise, la barre latérale de référence et le panneau de détails de la validation

Un visualiseur d'arborescence Git dessine votre historique de validation sous forme de graphique : chaque point est une validation, chaque ligne colorée est une branche et deux lignes se rencontrant en un seul point sont une fusion. Git lui-même en propose deux : exécutez git log --graph --oneline --all --decorate dans n'importe quel terminal ou ouvrez gitk --all. Lorsque vous souhaitez un historique sur lequel vous pouvez cliquer, filtrer et rechercher, utilisez un graphique de validation GUI tel que GitTree, un client Git de bureau pour macOS, Windows et Linux.

Ce guide passe en revue les trois, puis montre comment lire les voies et fusionner les commits et comment trouver un commit parmi des milliers. Une brève divulgation : le créateur de GitTree l'a écrit. Les sections de ligne de commande et gitk n'ont besoin que de Git.

Graphique du journal Git : l'arborescence déjà intégrée à Git

L’arborescence Git la plus rapide consiste en une seule commande. Il fonctionne dans n'importe quel référentiel, via SSH, et sur tous les systèmes sur lesquels Git s'exécute :

git log --graph --oneline --all --decorate
  • --graph dessine un graphique textuel de branches et fusionne à gauche de chaque commit. Il trie également les commits afin qu'aucun parent n'apparaisse avant ses enfants.
  • --oneline imprime une ligne par commit : le hachage court et la première ligne du message.
  • --all affiche chaque branche, branche distante et balise plus HEAD, pas seulement la branche sur laquelle vous vous trouvez. Sans cela, les branches qui ne sont pas fusionnées dans votre branche actuelle restent masquées.
  • --decorate imprime les noms de branches et de balises à côté des commits vers lesquels ils pointent. Git le fait déjà lorsque la sortie est envoyée à un terminal, donc l'indicateur est surtout important lorsque vous redirigez la sortie ou que vous avez modifié log.decorate.

La sortie ressemble à ceci. Le commit le plus récent se trouve en haut, * marque un commit et les caractères |, \ et / sont les lignes de branchement :

*   a1b2c3d (HEAD -> main) Merge branch 'feature/search'
|\
| * 9f8e7d6 (feature/search) Highlight matched terms
| * 5c4b3a2 Add search index
* | 1a2b3c4 Fix typo in README
|/
* 0f9e8d7 (tag: v1.0.0) Release 1.0.0

Lisez-le de bas en haut : v1.0.0 a été publié, puis deux lignes de travail se sont déroulées côte à côte (un correctif README sur main, une fonction de recherche sur sa propre branche), et la fusion en haut les a à nouveau rejoints.

Enregistrez-le sous un alias court

Personne ne veut taper quatre drapeaux à chaque fois. Un alias Git transforme la commande entière en git tree :

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

Quatre variantes à connaître

git log --graph --oneline --first-parent main
git log --graph --oneline --all --simplify-by-decoration
git log --graph --oneline main..feature/search
git log --graph --pretty=format:"%h %an %ar %s"
  1. --first-parent suit uniquement le premier parent de chaque fusion, donc main se lit comme une liste directe de ce qui a atterri dessus, une fusion par fonctionnalité.
  2. --simplify-by-decoration conserve uniquement les commits vers lesquels pointe une branche ou une balise : un aperçu de votre arborescence de branches Git sans les commits intermédiaires.
  3. main..feature/search affiche les commits sur feature/search qui ne sont pas encore dans main, ce qu'apporterait une fusion.
  4. --pretty=format ajoute l'auteur et une date relative (« il y a 3 jours ») à chaque ligne.

gitk : le visualiseur d'historique Git fourni avec Git

gitk est le propre navigateur de référentiel graphique de Git, écrit en Tcl/Tk. Il dessine le graphique de validation, affiche les détails de chaque validation et répertorie les fichiers dans chaque révision. Démarrez-le depuis un référentiel :

gitk --all

gitk accepte les mêmes limites que git log, vous pouvez donc le restreindre à une plage horaire ou à un dossier. Cela n'ouvre que les deux dernières semaines de modifications sous src/ :

gitk --since="2 weeks ago" -- src/

Si votre shell répond gitk: command not found, votre installation Git l'a laissé de côté. Sur Debian et Ubuntu, gitk est un package distinct :

sudo apt install gitk

gitk est conçu pour lire l'historique. Il comporte quelques actions de validation dans son menu contextuel, mais la réalisation de validations appartient à son outil frère, git gui, qui, selon sa propre documentation, n'affiche pas l'historique du projet. Pour le travail quotidien, vous finissez par basculer entre les deux fenêtres et le terminal.

Un graphique de validation GUI : une arborescence Git sur laquelle vous pouvez cliquer

Un client Git de bureau dessine la même arborescence, mais chaque ligne est active. Sélectionnez un commit pour voir son message, ses parents et les fichiers modifiés. Faites un clic droit dessus pour créer une branche, sélectionner ou revenir en arrière. Double-cliquez sur une étiquette de branche pour l'extraire ou faites glisser une branche sur une autre pour la fusionner ou la rebase. Dans GitTree, le graphique de validation est la fenêtre principale plutôt qu'une visionneuse distincte.

Graphique de validation de GitTree : chaque branche a sa propre voie colorée, les étiquettes de branche et de balise se trouvent à gauche, et les détails et les fichiers de la validation sélectionnée sont à droite.
Graphique de validation de GitTree : chaque branche a sa propre voie colorée, les étiquettes de branche et de balise se trouvent à gauche, et les détails et les fichiers de la validation sélectionnée sont à droite.

Voici ce que GitTree dessine sur le graphique, au-delà des points et des lignes :

  • Des voies codées par couleur pour chaque branche, avec des étiquettes locales, distantes et de balise sur les commits vers lesquels elles pointent.
  • Une ligne // WIP au-dessus de la validation la plus récente pour les modifications que vous n'avez pas encore validées, et chaque cache dessiné sur le graphique au niveau de la validation à partir de laquelle il a été effectué.
  • Créez des avatars et des badges de signature sur les commits signés.
  • Pull request et puces CI-check sur les astuces de branche une fois que vous vous connectez GitHub, GitLab, Bitbucket ou Azure DevOps.
  • Défilement fluide au-delà de 100 000 commits (mesurés sur Linux), afin que les historiques volumineux restent utilisables.

GitTree exécute le Git déjà installé sur votre ordinateur (version 2.39 ou plus récente), de sorte que chaque bouton fait ce que ferait la commande correspondante. Si vous êtes encore en train de choisir entre les deux styles, notre comparaison de l'utilisation d'une interface graphique Git par rapport à la ligne de commande couvre les compromis.

Comment lire un graphique de commit Git : voies, forks et fusions

Que le graphique soit ASCII dans un terminal ou coloré dans une fenêtre, les mêmes règles s'appliquent :

Lire un graphique de commit Git
Ce que tu voisCe que cela signifie
Un point (* dans le terminal)Un engagement. Les commits les plus récents sont supérieurs aux plus anciens.
Une ligne verticale ou une voieUne ligne de développement : des commits qui se succèdent sur une branche.
Une ligne qui se sépareQuelqu'un a démarré une branche à partir de ce commit et le travail s'est poursuivi à deux endroits.
Deux lignes se rejoignant en un seul pointUn commit de fusion. Il a deux parents, un de chaque lignée.
Un libellé tel que main, origin/main ou v1.0.0Une branche locale, une branche distante ou une balise pointant vers ce commit. HEAD -> marque ce que vous avez extrait.
Une ligne droite, pas de fourchesHistorique linéaire, généralement à partir de fusions à avance rapide ou de rebasage avant la fusion.

Lecture des commits de fusion

Un commit de fusion a deux parents. Le premier parent est la branche sur laquelle vous vous trouviez lors de la fusion, généralement main. La seconde est la branche dans laquelle vous avez fusionné. C'est pourquoi --first-parent donne un résumé si clair de main : il ignore l'intérieur de chaque branche de fonctionnalité. Dans GitTree, sélectionnez une fusion et le panneau de détails répertorie les deux hachages parents.

Une validation de fusion sélectionnée dans le thème clair de GitTree : le panneau de détails affiche les deux parents et les fichiers modifiés par la fusion.
Une validation de fusion sélectionnée dans le thème clair de GitTree : le panneau de détails affiche les deux parents et les fichiers modifiés par la fusion.

Quand les voies se croisent et que l'image devient chargée

Les branches à longue durée de vie qui se rejoignent font que les voies se croisent. Rien n'est cassé ; il y a tout simplement plus à l’écran que ce dont vous avez besoin. Coupez-le jusqu'aux branches qui vous tiennent à cœur. Dans le terminal, nommez-les au lieu d'utiliser --all, par exemple git log --graph --oneline main feature/search. Dans GitTree, cliquez avec le bouton droit sur l'étiquette d'une branche et choisissez Masquer dans le graphique, Solo dans le graphique pour afficher uniquement cette branche, ou Épingler à gauche pour conserver sa voie dans la première colonne.

Rechercher dans l'historique Git : trouver un commit parmi des milliers

Voir l'arbre représente la moitié du travail. L'autre moitié consiste à trouver le commit qui a modifié la chose que vous déboguez.

Rechercher à partir de la ligne de commande

git log --oneline --author="Jane"
git log --oneline --since="2 weeks ago" -- src/
git log --oneline -S"parse_header"
git log --oneline -G"fn [a-z_]+_header"
  • --author conserve les commits dont le nom de l'auteur ou l'adresse e-mail correspond au modèle.
  • --since et --until limitent par date, et -- src/ conserve uniquement les validations qui ont touché ce chemin.
  • -S, la « pioche », recherche les commits qui ont ajouté ou supprimé une chaîne. C'est le moyen le plus rapide de savoir quand une fonction est apparue ou disparue.
  • -G recherche les commits dont les lignes ajoutées ou supprimées correspondent à une expression régulière. Tenez-vous-en aux expressions entre crochets POSIX telles que [a-z_] ou [[:alnum:]] : les raccourcis comme \w ne fonctionnent pas avec toutes les versions de Git.

Recherchez dans GitTree avec auteur :, fichier : et modifiez :

La recherche au-dessus du graphique (Recherche dans l'historique chargé) correspond à un message, un auteur, un hachage, une branche ou un tag. Pour une recherche plus approfondie, ouvrez la palette de commandes avec Ctrl+Shift+P (⌘+Shift+P sur un Mac), tapez #, puis votre requête. Les mots sans préfixe recherchent les messages de validation, et ces préfixes affinent le résultat :

  • author:jane ou author:"Jane Doe" : le nom ou l'e-mail de l'auteur contient ce texte.
  • file:src/main.rs : le commit touche ce chemin. Répétez-le pour faire correspondre plusieurs chemins.
  • change:parse_header : le commit ajoute ou supprime cette chaîne, comme git log -S.
  • change:/fn [a-z_]+_header/ : une ligne modifiée correspond à l'expression régulière, comme git log -G.

Combinez-les en une seule requête : #fix crash author:jane file:src/ trouve les commits de Jane qui mentionnent « réparer un crash » et touchent src/. Pour réduire le graphique lui-même plutôt que de répertorier les résultats, utilisez Filter Graph… pour ne conserver qu'un seul auteur, une plage de dates ou un chemin.

La palette de commandes GitTree : tapez # pour rechercher des commits, @ pour les branches et les balises, ou : pour les fichiers.
La palette de commandes GitTree : tapez # pour rechercher des commits, @ pour les branches et les balises, ou : pour les fichiers.

Consultez votre arborescence Git dans GitTree

  1. Installer GitTree

    Téléchargez GitTree pour macOS, Windows ou Linux et installez-le. Assurez-vous que Git 2.39 ou une version plus récente est installé (sur Windows, cela signifie Git for Windows) ; Ubuntu 22.04 fournit un ancien Git, donc mettez à niveau Git sur Ubuntu d'abord.

  2. Connectez-vous et commencez

    Lorsque GitTree s'ouvre, connectez-vous avec un compte GitTree, créé sur gittree.app avec votre adresse e-mail ou un fournisseur Git : le graphique et toutes les autres fonctionnalités Git sont alors sur le plan gratuit. Les intégrations d'hébergement (GitHub, GitLab, Bitbucket et Azure DevOps, télécommandes privées incluses) et Nour, l'assistant IA, sont livrés avec GitTree Pro, qui commence par un essai gratuit ; le plan Free continue après.

  3. Ouvrir ou cloner un dépôt

    Sur la page de démarrage, choisissez Ouvrir et choisissez un dossier contenant un référentiel Git, ou choisissez Cloner pour en copier un à partir d'une URL via HTTPS ou SSH.

  4. Lire le graphique

    Le graphique de validation remplit la fenêtre principale : les validations les plus récentes en haut, une ligne colorée par branche, des étiquettes pour les branches et les balises. Cliquez sur n'importe quel commit pour voir son message, ses parents et les fichiers modifiés.

  5. Concentration et recherche

    Cliquez avec le bouton droit sur une étiquette de branche pour la masquer, la masquer ou l'épingler, utilisez Filter Graph… pour un auteur, une plage de dates ou un chemin, et tapez # dans la palette de commandes pour rechercher avec author:, file: ou change:.

Quel visualiseur d'arborescence Git devriez-vous utiliser ?

Trois façons de visualiser l'historique de Git
OptionsIdéal pourCe dont vous avez besoin
git log --graphAperçus rapides, sessions SSH, scripts et journaux CIGit uniquement
gitkUn graphique cliquable de la suite Git elle-mêmeGit (sur Debian et Ubuntu, le package gitk séparé)
GitTreeLire, rechercher et modifier l'historique dans une seule fenêtreGitTree (Forfait gratuit pour chaque fonctionnalité Git, avec un compte GitTree ; Nour avec Pro) et Git 2.39 ou plus récent

La plupart des développeurs finissent par en utiliser plusieurs : le terminal pour un aperçu rapide, une interface graphique pour parcourir l'historique et pour des modifications plus faciles à voir, comme un rebase interactif dans une interface graphique. Si vous êtes nouveau dans les branches et les commits, commencez par notre guide Git pour débutants, puis entraînez-vous à lire l'historique dans la leçon gratuite Lire les commits, HEAD et les plages de révision, et découvrez ce qu'est un HEAD détaché dans Garder le travail détaché. Si vous souhaitez comparer les applications de bureau, consultez notre tour d'horizon des meilleurs clients Git GUI.

GitTree propose un forfait gratuit qui couvre toutes les fonctionnalités de Git, y compris les référentiels privés, et Nour, l'assistant IA, est livré avec GitTree Pro. Consultez tout ce que le graphique de validation et le reste de l'application peuvent faire, ou lisez les notes d'installation pour Mac, Windows et Linux.

Questions fréquemment posées

Qu'est-ce qu'un visualiseur d'arborescence Git ?

Un visualiseur d'arborescence Git est un outil qui dessine l'historique des validations d'un référentiel sous forme de graphique au lieu d'une liste plate. Chaque commit est un point, chaque branche est une ligne et les fusions apparaissent là où les lignes se rejoignent. Git en comprend deux : la commande git log --graph pour le terminal et la fenêtre gitk. Les clients Desktop Git tels que GitTree ajoutent un graphique cliquable et consultable.

Comment puis-je voir l’arborescence des branches Git dans le terminal ?

Exécutez git log --graph --oneline --all --decorate dans le référentiel. --graph dessine les lignes de branchement, --oneline conserve chaque commit sur une ligne, --all inclut chaque branche et balise plutôt que seulement la branche actuelle, et --decorate imprime les noms de branche et de balise. Enregistrez-le comme alias avec git config --global alias.tree "log --graph --oneline --all --decorate" et à partir de là, tapez git tree.

Pourquoi git log n’affiche-t-il pas toutes mes branches ?

Par défaut, git log répertorie uniquement les commits accessibles à partir de HEAD, le commit que vous avez extrait. Les succursales qui ne sont pas fusionnées dans votre branche actuelle sont exclues. Ajoutez --all pour inclure chaque branche locale, branche distante et balise, ou nommez les branches souhaitées, par exemple git log --graph main feature/search.

Gitk est-il installé avec Git ?

gitk fait partie de la suite Git, donc de nombreuses installations l'incluent. Certaines distributions Linux le conditionnent séparément : sur Debian et Ubuntu, installez-le avec sudo apt install gitk. Démarrez-le depuis l'intérieur d'un référentiel avec gitk --all pour voir chaque branche. Il accepte les mêmes limites de date et de chemin que git log, telles que --since ou -- src/.

Comment trouver le commit qui a ajouté une ligne de code spécifique ?

Utilisez la recherche par pioche. git log -S"text" répertorie les commits qui ont modifié le nombre de fois où cette chaîne exacte apparaît, ce qui indique quand elle a été ajoutée et supprimée. git log -G"regex" fait correspondre les lignes ajoutées ou supprimées à une expression régulière. Dans GitTree, ouvrez la palette de commandes, tapez # et utilisez change:text ou change:/regex/ pour les mêmes recherches.

Est-ce que GitTree est gratuit et sur quels systèmes fonctionne-t-il ?

GitTree propose un forfait gratuit qui couvre toutes les fonctionnalités de Git, pour les particuliers et les organisations, dépôts privés et utilisation commerciale inclus, sans limite de durée et sans carte de crédit. Nour, l'assistant IA, est livré avec GitTree Pro ; la page Tarifs compare les deux plans. Il fonctionne sur macOS 13 ou version ultérieure, 64 bits Windows 10 et 11 et 64 bits Linux (Ubuntu 22.04 ou version ultérieure, Debian 12 ou version ultérieure). Il vous demande de vous connecter avec un compte GitTree et utilise le Git déjà installé sur votre ordinateur, version 2.39 ou ultérieure ; GitTree Pro est requis pour l'hébergement des intégrations.

Un visualiseur de graphiques Git peut-il gérer de très grands référentiels ?

Le graphique du terminal gère n'importe quelle taille mais devient difficile à lire avec de nombreuses branches ; limitez-le avec des noms de branche, --since ou un chemin. Le graphique de validation de GitTree défile en douceur au-delà de 100 000 validations dans les mesures sur Linux, et vous pouvez masquer, isoler ou épingler des branches et filtrer par auteur, date ou chemin pour conserver un historique volumineux lisible.

Sources

Les allégations concernant d'autres produits ont été vérifiées par rapport à leurs pages officielles sur 22 octobre 2026. Les prix et les fonctionnalités changent ; les pages des fournisseurs sont la source de vérité.