Tig, la console pour Git

Tig est une interface ncurses qui peut être utilisée afin de parcourir un projet Git.

C’est un peu court jeune homme

Avec Tig, vous pourrez explorer un projet Git et obtenir un ensemble d’informations en parcourant l’arborescence présentée par l’interface ncurses. Vous pourrez, par exemple, consulter l’historique d’un fichier, voir les différences entre les différents commits, réaliser un git blame et bien d’autres actions. Ces différentes opérations sont caractérisées par une vue dans Tig.

Installation

L’installation peut s’effectuer de plusieurs façons en fonction de votre système d’exploitation et de vos envies :

  • Avec Brew sous MacOS, soit la dernière version, soit la branche master disponible sur Github avec la commande brew install tig
  • Avec le gestionnaire de paquets de votre distribution Linux
  • En clonant le projet depuis Github et en le compilant vous-même, sur tout système Unix/Linux
  • L’installation sous Windows nécessite d’avoir Cygwin installé ainsi que les packages nécessaires à sa compilation.

Configuration

Un ensemble de paramètres de configuration peuvent être définis dans le fichier de configuration tigrc, donc l’emplacement différera en fonction de votre méthode d’installation (/etc/tigrc ou /usr/local/etc/tigrc principalement). Vous pouvez définir la configuration de Tig directement dans la configuration Git du projet, permettant différentes options en fonction du projet. Cela permet aussi à chaque utilisateur du système d'avoir sa propre configuration dans son répertoire personnel.
La configuration se fait à l’aide de 4 mots-clés :

  • set: permet de définir des variables avec une valeur, comme par exemple les options passées lors de l’affichage d’un diff
  • bind: définit l’association entre un raccourci clavier et une action dans une vue
  • color: comme son nom l’indique, ce mot-clé permet de choisir les couleurs sous lesquelles se présenteront les différents éléments
  • source: autorise le chargement de fichiers de configuration supplémentaires. Ceci est fortement pratique pour séparer les différents éléments de configuration.

Comment ça marche ?

Vous pouvez exécuter Tig des 2 façons suivantes depuis le répertoire d’un projet, soit en l’associant avec une commande Git (par exemple git log | tig), soit directement.

Vous arriverez alors dans la vue Main de Tig, qui indique la liste des commits, que vous pouvez voir en appuyant sur la touche entrée :

Vous pouvez vous servir des différentes touches utilisables dans un outil tel que Less pour vous déplacer dans chaque vue.

De là, vous pouvez aller dans la vue Tree afin de parcourir l’arborescence du projet en utilisant la touche t :

Depuis cette vue, un appui sur b et le git blame du fichier sélectionné apparaît :

La touche entrée depuis la vue Tree vous permet de consulter le contenu du fichier :

Il existe bien évidemment une vue log afin d’afficher le git log du projet et de naviguer pour voir les détails de chaque commit :

Comme dans l’ensemble des vues, l’utilisation de la touche entrée permet de voir le diff du fichier sélectionné dans le log du commit. À l’aide d’un appui sur e, nous allons directement dans notre éditeur préféré afin de modifier le fichier.
Il est aussi possible, par les bindings prédéfinis, de réaliser certaines actions sur git telles que stash, commit, status.

Les vues présentées sont configurables, comme par exemple, l’ajout de bindings qui vous permettra de faire encore plus avec cet outil.

Et pour finir

Dans cet article, nous vous avons proposé de découvrir Tig permettant d’interagir d’une nouvelle façon avec les projets Git. Nous ne pouvons que vous encourager à l’utiliser pour découvrir l’ensemble de ses fonctionnalités et pourquoi pas aller plus loin, par exemple en utilisant le plugin Vim qui permet d’utiliser Tig directement dans Vim.