Git 🌙
Chapters â–Ÿ 2nd Edition

A1.1 Annexe A: Git dans d’autres environnements - Interfaces graphiques

Si vous avez lu le livre dans son intĂ©gralitĂ©, vous avez appris beaucoup sur son utilisation Ă  partir de la ligne de commande. Vous pouvez travailler avec des fichiers locaux, connecter vos dĂ©pĂŽts avec d’autres Ă  travers un rĂ©seau et travailler efficacement avec d’autres personnes. Mais l’histoire ne s’arrĂȘte pas ici ; Git est habituellement utilisĂ© comme sous-partie d’un Ă©cosystĂšme plus grand et le terminal n’est pas toujours le meilleur moyen d’interagir dans ce cadre. Nous allons maintenant jeter un Ɠil Ă  certains des autres types d’environnements oĂč Git s’avĂšre utile ainsi que la maniĂšre dont d’autres applications (dont la vĂŽtre) intĂšgrent Git.

Interfaces graphiques

L’environnement natif de Git est le terminal. Les nouvelles fonctionnalitĂ©s y apparaissent en premier et c’est seulement Ă  la ligne de commande que vous disposez de tout le pouvoir de Git. Mais le texte pur n’est pas toujours le meilleur choix pour toutes les tĂąches ; quelques fois, une reprĂ©sentation visuelle est prĂ©fĂ©rable et certains utilisateurs sont beaucoup plus Ă  l’aise avec une interface pointer-cliquer.

Il est important de noter que diffĂ©rentes interfaces sont adaptĂ©es Ă  diffĂ©rents modes de travail. Certains clients n’exposent qu’une partie soigneusement choisie des fonctionnalitĂ©s de Git, pour supporter une façon spĂ©cifique de travailler que l’auteur considĂšre efficace. Vu sous cet angle, aucun outil ne peut ĂȘtre qualifiĂ© de « meilleur » qu’un autre, il est simplement plus adaptĂ© Ă  l’utilisation dĂ©sirĂ©e. Il faut remarquer aussi qu’il n’y rien que ces outils graphiques ne fassent que l’interface en ligne de commande ne puisse faire ; la ligne de commande reste l’interface qui vous donne le plus de puissance et de contrĂŽle sur vos dĂ©pĂŽts.

gitk et git-gui

Quand vous installez Git, vous obtenez aussi ses outils visuels, gitk et git-gui.

gitk est l’outil de visualisation graphique d’historique. Voyez-le comme une interface GUI puissante par-dessus git log et git grep. C’est l’outil Ă  utiliser lorsque vous essayez de trouver un Ă©vĂ©nement passĂ© ou de visualiser l’historique de votre projet.

Gitk est plus facile à invoquer depuis la ligne de commande. Positionnez-vous simplement dans le dépÎt Git et tapez :

$ gitk [options de git log]

Gitk accepte de nombreuses options de ligne de commande, dont la plupart sont passĂ©es directement Ă  la commande git log sous-jacente. L’une des plus intĂ©ressantes est probablement d’ajouter l’option --all qui indique Ă  gitk de montrer tous les commits joignables depuis n’importe quelle rĂ©fĂ©rence, et pas seulement HEAD. L’interface de Gitk ressemble Ă  ceci :

Le visualisateur d’historique `gitk`.
Figure 151. Le visualisateur d’historique gitk.

Dans la partie supĂ©rieure, une zone ressemble Ă  la sortie de git log --graph. Chaque point reprĂ©sente un commit, les lignes reprĂ©sentent les liens de parentĂ© et les rĂ©fĂ©rences apparaissent dans des rectangles colorĂ©s. Le point jaune reprĂ©sente HEAD et le point rouge reprĂ©sente les modifications qui ne sont pas validĂ©es. Dans la partie basse, on visualise le commit sĂ©lectionné : les commentaires et le patch sur la gauche et une vue en rĂ©sumĂ© sur la droite. Au milieu se trouve un ensemble de composants graphiques utilisĂ©s pour rechercher dans l’historique.

git-gui, par contre est un outil permettant de ciseler les commits. Lui aussi est plus facile à invoquer en ligne de commande :

$ git gui

Et il ressemble à ceci :

L’outil d’aide à la validation `git-gui`.
Figure 152. L’outil d’aide à la validation git-gui.

Sur la gauche, il y a l’index ; les modifications non indexĂ©es sont en haut, les modifications indexĂ©es en bas. Vous pouvez dĂ©placer des fichiers entiers entre les deux Ă©tats en cliquant sur leurs icĂŽnes ou vous pouvez sĂ©lectionner un fichier Ă  visualiser en cliquant sur son nom.

La vue diff en haut à droite montre les modifications pour le fichier sélectionné. Vous pouvez indexer des sections individuelles (ou des lignes individuelles) en cliquant-droit dans cette zone.

La zone de message et d’action est en bas Ă  droite. Tapez votre message dans la boĂźte Ă  texte et cliquez « Commiter » pour rĂ©aliser une action similaire Ă  git commit. Vous pouvez aussi choisir de corriger le commit prĂ©cĂ©dent en sĂ©lectionnant le bouton radio « Corriger dernier commit », ce qui met Ă  jour la zone « Modifs. indexĂ©es » avec le contenu du dernier commit. Ensuite, vous pouvez simplement indexer ou dĂ©sindexer certaines modifications, modifier le message de validation et cliquer Ă  nouveau sur le bouton « Commiter » pour remplacer l’ancien commit par le nouveau.

gitk et git-gui sont des exemples d’outils orientĂ©s tĂąche. Chacun est taillĂ© pour un objectif spĂ©cifique (visualiser l’historique et crĂ©er des commits, respectivement) en omettant certaines fonctionnalitĂ©s non-nĂ©cessaires Ă  cette tĂąche.

GitHub pour macOS et Windows

GitHub a crĂ©Ă© deux clients Git orientĂ©s flux de travail : un pour Windows et un pour macOS. Ces clients sont un bon exemple d’outils orientĂ©s flux de travail — plutĂŽt que d’exposer toutes les fonctionnalitĂ©s de Git, ils se focalisent sur un sous-ensemble sĂ©lectionnĂ© de fonctions couramment utilisĂ©es qui s’accordent. Ils ressemblent Ă  ceci :

GitHub pour macOS.
Figure 153. GitHub pour macOS.
GitHub pour Windows.
Figure 154. GitHub pour Windows.

Ils sont pensĂ©s pour se ressembler et fonctionner de la mĂȘme maniĂšre, donc nous les traiterons comme un seul produit dans ce chapitre. Nous n’allons pas explorer en profondeur ces outils (ils ont leur propre documentation), mais un tour rapide de la vue « changes » (qui est celle sur laquelle vous passerez le plus de temps) montre que tout est en ordre.

  • Sur la gauche, il y a la liste des dĂ©pĂŽts que le client suit ; vous pouvez ajouter un dĂ©pĂŽt (soit en le clonant, soit en l’attachant localement) en cliquant sur l’icĂŽne « + » en haut de la zone.

  • Au centre, il y a la zone d’entrĂ©e de commit qui vous permet d’entrer un message de validation et de sĂ©lectionner les fichiers qui devraient ĂȘtre inclus. Sous Windows, l’historique de validation est affichĂ© directement en dessous ; sous macOS, c’est un onglet sĂ©parĂ©.

  • À droite, il y a une vue de diff qui montre ce qui a changĂ© dans votre rĂ©pertoire de travail ou les modifications qui ont Ă©tĂ© incluses dans le commit sĂ©lectionnĂ©.

  • La derniĂšre chose Ă  noter est le bouton « Sync » en haut Ă  droite qui est le moyen principal d’interagir via le rĂ©seau.

Note

Vous n’avez pas besoin d’un compte GitHub pour utiliser ces outils. Bien qu’ils soient pensĂ©s pour mettre en lumiĂšre le service et la mĂ©thode de travail de GitHub, ils fonctionneront parfaitement avec n’importe quel dĂ©pĂŽt et dialogueront sans problĂšme avec n’importe quel serveur Git.

Installation

GitHub pour Windows peut ĂȘtre tĂ©lĂ©chargĂ© depuis https://windows.github.com et GitHub pour macOS depuis https://mac.github.com. Quand les applications sont lancĂ©es pour la premiĂšre fois, elles vous guident Ă  travers le paramĂ©trage initial de Git, tel que la configuration de votre nom et de votre adresse de courriel, et toutes deux dĂ©finissent un paramĂ©trage par dĂ©faut sans danger concernant diffĂ©rentes options de configuration telles que les caches d’identification et le comportement pour les fins de ligne.

Les deux applications sont « permanentes » — les mises Ă  jour sont tĂ©lĂ©chargĂ©es et appliquĂ©es en tĂąche de fond pendant que l’application est ouverte. Elles incluent une version autonome de Git, ce qui signifie que vous n’aurez probablement pas Ă  vous soucier de le mettre Ă  jour. Sous Windows, le client inclut un raccourci pour lancer PowerShell avec Posh-git, dont nous parlerons plus loin.

L’étape suivante consiste Ă  fournir Ă  l’outil des dĂ©pĂŽts avec lesquels travailler. Le client vous affiche une liste de dĂ©pĂŽts auxquels vous avez accĂšs sur GitHub et que vous pouvez cloner en une Ă©tape. Si vous avez dĂ©jĂ  un dĂ©pĂŽt local, glissez son rĂ©pertoire depuis le Finder ou Windows Explorer dans la fenĂȘtre de client GitHub et il sera inclus dans la liste des dĂ©pĂŽts.

Gestion recommandée du travail

Une fois installĂ© et configurĂ©, le client GitHub peut ĂȘtre utilisĂ© pour de nombreuses tĂąches usuelles. La maniĂšre de travailler avec cet outil est quelques fois appelĂ©e le « GitHub Flow ». Nous traitons ceci plus en dĂ©tail dans Processus GitHub, mais l’esprit gĂ©nĂ©ral est que a) vous validerez vos modifications dans une branche et b) vous synchroniserez avec un dĂ©pĂŽt distant assez rĂ©guliĂšrement.

La gestion de branche est un des domaines pour lesquels les deux outils divergent. Sous macOS, il y a un bouton en haut de la fenĂȘtre pour crĂ©er de nouvelles branches :

Le bouton « _Create Branch_ » sous macOS
Figure 155. Le bouton « Create Branch » sous macOS.

Sous Windows, cela se fait en tapant le nom de la branche dans la zone de saisie de bascule de branche :

Créer une branche sous Windows.
Figure 156. Créer une branche sous Windows.

Une fois votre branche crĂ©Ă©e, ajouter des nouveaux commits est assez simple. Faites des modifications dans votre rĂ©pertoire de travail et quand vous revenez dans la fenĂȘtre du client GitHub, elle vous indiquera quels fichiers ont changĂ©. Entrez un message de validation, sĂ©lectionnez les fichiers que vous souhaitez inclure et cliquez sur le bouton « Commit » (ctrl-entrĂ©e ou ⌘-entrĂ©e).

La maniĂšre principale d’interagir avec les autres dĂ©pĂŽts Ă  travers le rĂ©seau passe par la fonctionnalitĂ© « Sync ». Git dispose d’opĂ©rations diffĂ©rentes pour pousser, rĂ©cupĂ©rer, fusionner et rebaser, mais les clients GitHub les rĂ©duisent en une seule fonctionnalitĂ© Ă  plusieurs Ă©tapes. Voici ce qui se passe quand vous cliquez sur le bouton « Sync » :

  1. git pull --rebase. Si cela Ă©choue Ă  cause d’un conflit de fusion, revenir Ă  git pull --no-rebase.

  2. git push.

C’est la sĂ©quence la plus habituelle pour les commandes de rĂ©seau quand vous travaillez dans ce mode, donc les rĂ©duire Ă  une seule commande fait gagner du temps.

Résumé

Ces outils sont trĂšs adaptĂ©s au mode de travail pour lequel ils sont pensĂ©s. Les dĂ©veloppeurs, mais aussi les non-dĂ©veloppeurs peuvent collaborer sur un projet en peu de temps et un grand nombre des meilleures pratiques pour ce genre de flux de travail sont saisies dans les outils. Cependant, si votre gestion du dĂ©veloppement est diffĂ©rente ou si vous voulez plus de contrĂŽle sur comment et quand les opĂ©rations de rĂ©seau sont rĂ©alisĂ©es, nous vous recommandons d’utiliser un autre client ou la ligne de commande.

Autres GUIs

Il existe un certain nombre d’autres clients Git graphiques et ils s’étendent depuis les outils trĂšs spĂ©cialisĂ©s, Ă  fonction unique jusqu’aux applications qui cherchent Ă  exposer tout ce que Git peut faire. Le site officiel Git prĂ©sente une liste sĂ©lectionnĂ©e des clients les plus populaires sur https://git-scm.com/downloads/guis. Une liste plus longue est disponible sur le site du wiki Git sur https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#Graphical_Interfaces.

scroll-to-top