Git dans d'autres environnements - Interfaces graphiques
Si vous connaissez Git, vous savez que vous pouvez travailler avec des fichiers locaux, connecter votre dépôt à d'autres via un réseau et travailler efficacement avec d'autres. Mais l'histoire ne s'arrête pas là; Git est généralement utilisé dans le cadre d'un écosystème plus vaste, et le terminal n'est pas toujours le meilleur moyen de l'utiliser. Nous allons maintenant examiner certains des autres types d'environnements dans lesquels Git peut être utile, et comment d'autres applications (y compris la vôtre) fonctionnent aux côtés de Git.
Interfaces graphiques
L'environnement natif de Git se trouve dans le terminal. Les nouvelles fonctionnalités y apparaissent en premier, et c'est uniquement sur la ligne de commande que vous disposez de toute la puissance de Git. Mais le texte brut n'est pas le meilleur choix pour toutes les tâches ; parfois, une représentation visuelle est ce dont vous avez besoin, 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 flux de travail. Certains clients n'exposent qu'un sous-ensemble soigneusement sélectionné de fonctionnalités Git, afin de prendre en charge une manière de travailler spécifique que l'auteur considère comme efficace. Vu sous cet angle, aucun de ces outils ne peut être qualifié de «meilleur» que les autres, ils sont simplement plus adaptés à l'usage auquel ils sont destinés. Notez également que ces clients graphiques ne peuvent rien faire que le client en ligne de commande ne puisse faire ; la ligne de commande reste l'endroit où vous aurez le plus de puissance et de contrôle lorsque vous travaillerez avec vos dépôts.
gitk et git-gui
Lorsque vous installez Git, vous obtenez également ses outils visuels, gitk et git-gui.
gitk est un visualiseur d'historique graphique. Considérez-le comme un puissant interpréteur de commande GUI sur git log et git grep. C'est l'outil à utiliser lorsque vous essayez de trouver quelque chose s'étant produit dans le passé ou de visualiser l'historique de votre projet.
Gitk est le plus facile à appeler à partir de la ligne de commande. Il suffit d'accéder à un dépôt Git et de saisir :
gitk [git log options] |
Gitk accepte de nombreuses options de ligne de commande, dont la plupart sont transmises à l'action git log sous-jacente. L'une des plus utiles est probablement l'option --all, indiquant à gitk d'afficher les commits accessibles depuis n'importe quelle référence, pas seulement HEAD. L'interface de Gitk ressemble à ceci :
En haut, il y a quelque chose ressemblant un peu à la sortie de git log --graph ; chaque point représente un commit, les lignes représentent les relations parentes et les références sont affichées sous forme de cases colorées. Le point jaune représente HEAD et le point rouge représente les modifications devant encore être converties en commit. En bas, il y a une vue du commit sélectionné ; les commentaires et le patch à gauche et une vue récapitulative à droite. Entre les deux, il y a une collection de contrôles utilisés pour rechercher l'historique.
git-gui, en revanche, est principalement un outil de création de commits. Il est également plus facile à invoquer à partir de la ligne de commande :
git gui |
Et cela ressemble à ceci :
À gauche se trouve l'index; les modifications non mises en scène sont en haut, les modifications mises en scène 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 à afficher en cliquant sur son nom.
En haut à droite se trouve la vue diff, montrant les modifications du fichier actuellement sélectionné. Vous pouvez mettre en scène des morceaux individuels (ou des lignes individuelles) en cliquant avec le bouton droit dans cette zone.
En bas à droite se trouve la zone de message et d'action. Tapez votre message dans la zone de texte et cliquez sur «Commit» pour faire quelque chose de similaire à git commit. Vous pouvez également choisir de modifier le dernier commit en choisissant le bouton radio «Amend», mettant à jour la zone «Staged Changes» avec le contenu du dernier commit. Vous pouvez ensuite simplement mettre en scène ou annuler certaines modifications, modifier le message de validation et cliquer à nouveau sur «Commit» pour remplacer l'ancien commit par un nouveau.
gitk et git-gui sont des exemples d'outils orientés tâches. Chacun d'entre eux est adapté à un objectif spécifique (respectivement afficher l'historique et créer des commits) et omet les fonctionnalités qui ne sont pas 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 concentrent plutôt sur un ensemble organisé de fonctionnalités couramment utilisées fonctionnant bien ensemble.
Ils sont conçus pour se ressembler et fonctionner de manière très similaire, nous les traiterons donc comme un seul produit dans cette page. Nous n'allons pas faire un aperçu détaillé de ces outils, mais une visite rapide de la vue «modifications» (étant celle où vous passerez la plupart de votre temps) s'impose.
- Sur la gauche se trouve la liste des dépôts suivis par le client ; 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 cette zone.
- Au centre se trouve une zone de saisie de validation, qui vous permet de saisir un message de validation et de sélectionner les fichiers à inclure. Sous Windows, l'historique des validations s'affiche directement en dessous ; sous macOS, il se trouve dans un onglet séparé.
- Sur la droite se trouve une vue de comparaison, montrant ce qui a changé dans votre répertoire de travail ou quelles modifications ont été incluses dans la validation sélectionnée.
- La dernière chose à remarquer est le bouton «Sync» en haut à droite, étant le principal moyen d'interagir sur le réseau.
Remarque : Vous n'avez pas besoin d'un compte GitHub pour utiliser ces outils. Bien qu'ils soient conçus pour mettre en valeur le service GitHub et le flux de travail recommandé, ils fonctionneront avec plaisir avec n'importe quel dépôt et effectueront des opérations réseau avec n'importe quel hôte Git.
Installation
Vous pouvez télécharger GitHub pour Windows et macOS à partir de https://desktop.github.com/. Lorsque les applications sont exécutées pour la première fois, elles vous guident tout au long de la configuration initiale de Git, comme la configuration de votre nom et de votre adresse de courriel, et toutes deux définissent des valeurs par défaut saines pour de nombreuses options de configuration courantes, telles que les caches d'informations d'identification et le comportement CRLF.
Les deux sont «persistantes» : les mises à jour sont téléchargées et installées en arrière-plan pendant que les applications sont ouvertes. Cela inclut une version groupée de Git, ce qui signifie que vous n'aurez probablement pas à vous soucier de la mettre à jour manuellement à nouveau. Sous Windows, le client inclut un raccourci pour lancer PowerShell avec Posh-git.
L'étape suivante consiste à donner à l'outil des dépôts avec lesquels travailler. Le client vous montre une liste des dépôts auxquels vous avez accès sur GitHub et peut les cloner en une seule étape. Si vous disposez déjà d'un dépôt local, faites simplement glisser son répertoire depuis le Finder ou l'Explorateur Windows vers la fenêtre du client GitHub, et il sera inclus dans la liste des dépôts sur la gauche.
Flux de travail recommandé
Une fois installé et configuré, vous pouvez utiliser le client GitHub pour de nombreuses tâches Git courantes. Le flux de travail prévu pour cet outil est parfois appelé «flux GitHub». La gestion des branches est l'un des domaines dans lesquels les deux outils divergent.
Une fois votre branche créée, il est assez simple de faire de nouveaux commits. Apportez quelques modifications dans votre répertoire de travail et lorsque vous passez à la fenêtre du client GitHub, elle vous montrera quels fichiers ont changé. Saisissez un message de validation, sélectionnez les fichiers que vous souhaitez inclure et cliquez sur le bouton «Commit» (Ctrl+Enter ou Cmd+Enter).
La principale façon d'interagir avec d'autres dépôts sur le réseau est via la fonctionnalité «Sync». Git dispose en interne d'opérations distinctes pour le push, la récupération, la fusion et le rebasage, mais les clients GitHub regroupent toutes ces opérations en une seule fonctionnalité en plusieurs étapes. Voici ce qui se passe lorsque vous cliquez sur le bouton Sync :
- Il lance la commande suivante :
- Ensuite :
git pull --rebase |
Si cela échoue en raison d'un conflit de fusion, revenez à git pull --no-rebase.
git push |
Il s'agit de la séquence de commandes réseau la plus courante lorsque l'on travaille dans ce style, donc les regrouper en une seule commande permet de gagner beaucoup de temps.
Résumé
Ces outils sont très bien adaptés au flux de travail pour lequel ils sont conçus. Les développeurs comme les non-développeurs peuvent collaborer sur un projet en quelques minutes, et de nombreuses bonnes pratiques pour ce type de flux de travail sont intégrées dans les outils. Cependant, si votre flux de travail est différent ou si vous souhaitez davantage de contrôle sur la manière et le moment d'effectuer les opérations réseau, nous vous recommandons d'utiliser un autre client ou la ligne de commande.
Autres interfaces graphiques
Il existe un certain nombre d'autres clients Git graphiques, et ils vont des outils spécialisés à usage unique jusqu'aux applications tentant d'exposer tout ce que Git peut faire. Voici la liste des outils GUI les plus connus :
Nom | Plateforme | Tarif | Licence |
---|---|---|---|
Anchorpoint | Mac, Windows | Gratuit / 20€ | Propriétaire |
Aurees | Linux, Mac, Windows | Gratuit | Propriétaire |
CommandGit | Windows | 5,99 $/mois (essai gratuit de 14 jours) | Propriétaire |
Cong | Windows | Gratuit | Propriétaire |
Fork | Mac, Windows | 49,99 $ (évaluation gratuite) | Propriétaire |
Fugitive | Linux, Mac, Windows | Gratuit | Vim |
GitDrive | iOS | Gratuit / 6,99 $ | Propriétaire |
GitFinder | Mac | Gratuit (limité) / 29,95 $ (essai gratuit de 30 jours) | Propriétaire |
giggle | Linux | Gratuit | GNU GPL |
GitAhead (plus en développement actif) | Linux, Mac, Windows | Gratuit | MIT |
GitAtomic | Windows | 17,99 $+/utilisateur par an (essai gratuit de 30 jours) | Propriétaire |
GitBreeze | Linux, Mac, Windows | Gratuit | Propriétaire |
git-cola | Linux, Mac, Windows | Gratuit | License: GNU GPL |
Git Extensions | Windows | Gratuit | License: GNU GPL |
Gitfox | Mac | 39,99 €/utilisateur par an / 79,99 € (essai gratuit de 30 jours) | Propriétaire |
GitFiend | Linux, Mac, Windows | Gratuit | Propriétaire |
gitg | Linux, Windows | Gratuit | GNU GPL |
Gitgui | Linux, Mac, Windows | Gratuit | MIT |
GitHub Desktop | Mac, Windows | Gratuit | MIT |
Git Klient | Linux | Gratuit | GNU GPL |
GitKraken CLI | Linux, Mac, Windows | Gratuit / 48,00 $+/utilisateur par an | Propriétaire |
GitKraken Desktop | Linux, Mac, Windows | Gratuit / 48 $+/utilisateur par an | Propriétaire |
Gitnuro | Linux, Mac, Windows | Gratuit | GNU GPL |
gitonic | Linux, Mac, Windows | Gratuit | AGPL-3.0 ou version ultérieure |
GitUI | Linux, Mac, Windows | Gratuit, mais les dons sont les bienvenus | MIT |
GitUp | Mac | Gratuit | GNU GPL |
GitViewer | Mac, iOS | Gratuit / 6,99 $ (essai gratuit de 7 jours) | Propriétaire |
Gittyup | Linux, Mac, Windows | Gratuit | MIT |
GitVine | Linux, Mac, Windows | Gratuit | Propriétaire |
Glint | Linux, Mac, Windows | Gratuit / 35 $/utilisateur par an | Propriétaire |
Guitar | Linux, Mac, Windows | Gratuit | GNU GPL |
LazyGit | Linux, Mac, Windows | Gratuit | MIT |
Magit | Linux, Mac, Windows | Gratuit | GNU GPL |
MeGit (basé sur EGit) | Linux, Mac, Windows | Gratuit | EPL2.0 |
NitroGit | Windows | Gratuit pour une utilisation non commerciale / 20€/utilisateur | Propriétaire |
Pocket Git | Android | 2,49 € /1,99 $ | Propriétaire |
PolyGit | iOS | Gratuit (limité) / 11,99 $/an / 39,99 $ | Propriétaire |
Pragma-git | Linux, Mac, Windows | Gratuit | MIT |
RelaGit | Linux, Mac, Windows | Gratuit | LGPL-3.0 ou version ultérieure |
RepoZ | Mac, Windows | Gratuit | MIT |
SmartGit | Linux, Mac, Windows | Gratuit pour une utilisation non commerciale / 59 $/utilisateur par an | Propriétaire |
SnailGit | Mac | Gratuit (limité) / 9,99 $ | Propriétaire |
SourceGit | Linux, Mac, Windows | Gratuit | MIT |
SourceTree | Mac, Windows | Gratuit | Propriétaire |
Sublime Merge | Linux, Mac, Windows | 99 $/utilisateur / 75 $/utilisateur par an (évaluation gratuite) | Propriétaire |
TortoiseGit | Windows | Gratuit | GNU GPL |
Tower | Mac, Windows | 69 $+/utilisateur par an (essai gratuit de 30 jours) | Propriétaire |
ungit | Linux, Mac, Windows | Gratuit | MIT |
Vershd | Linux, Mac, Windows | Gratuit pour une utilisation non commerciale / 37 $/utilisateur par an | Propriétaire |
Working Copy | iOS | Gratuit / 19,99 $ | Propriétaire |