×

Blog

Git: interface graphique ou ligne de commande?

Lorsque l’on débute dans l’utilisation de Git, on se pose, à un moment ou un autre, tous la même question. Faut il plutôt utiliser Git en ligne de commande ou via une interface graphique?

Il y a comme bien souvent deux écoles qui s’affrontent les pro ligne de commande et les pro IHM qui signifie Interface Homme Machine ou que l’on nomme aussi interface graphique. Nous allons voir ensemble les arguments des deux camps les plus souvent évoqués.

L’interface graphique utilise les commandes git

Il faut bien comprendre ce que fait exactement une interface graphique git pour comprendre la suite de cet article. Je vais peut être vous surprendre en vous disant cela,  mais les IHM pour Git ne font qu’utiliser des commandes git sans que vous le voyez.

Par exemple, dans les IHL Git, vous pouvez faire des commits. pour cela vous avez une zone de texte pour écrire le commentaire de commit et un bouton “commit”.

commande git et ihm

Quand vous cliquez sur ce  bouton, l’IHM vas finalement utiliser la commande git commit -m”message”.

C’est pour cela qu’il faut impérativement avoir installer Git sur son ordinateur pour utiliser les interfaces graphiques associées.

Les interfaces graphiques c’est pratique et plus visuelle

Il est vrai que Git via les invites de commandes peut se montrer parfois un peu austère, surtout lorsque l’on débute et que l’on est pas habitué à l’utilisation d’un terminal.

Je pense notamment à l’indexation interactif (git add –patch). Cette fonctionnalité est clairement plus agréable et simple d’utilisation via une IHM.

On peut également citer le diff et l’affichage d’historique dans les fonctions plus agréable à utiliser via les interfaces graphiques.

L’interface graphique ne permet pas tout

Mais pourquoi ne pas utiliser uniquement les IHM alors? Comme nous l’avons vu juste avant, les interfaces graphiques utilisent au final les commandes Git comme celles utilisées dans le terminal.

Mais il faut bien avoir à l’esprit que l’objectif principal d’une IHM est de faire abstraction de la complexité d’un programme. Ainsi l’utilisateur peut réaliser des fonctions complexes via des actions simples (boutons, zone de texte, …)  Mais qui dit abstraction dit aussi perte d’informations et de possibilités. Ainsi une IHM  filtrera toujours l’outil Git de sorte que certains logs ne seront pas affichés ou encore, certaines commandes et options de Git ne seront tout simplement pas accessibles.  

Cela signifie alors que l’utilisation uniquement d’IHM pour Git ne suffit pas.

L’interface graphique ne permet pas de comprendre le fonctionnement de git

Encore une fois, une IHM est là pour simplifier la tâche des utilisateurs. Vous ne voyez  pas  quelle commande est utilisée lorsque vous cliquez sur tel ou tel bouton. Cela signifie alors que vous ne pouvez pas comprendre ce qui ce passe vraiment dans Git à ce moment là.

Vous allez me dire que ce n’est pas bien grave. Mais lorsque l’on apprend à utiliser Git, il est clairement préférable de bien comprendre les mécanismes en action derrières les commandes, sous peine de se retrouver bloqué voir pire de perdre ces modifications.

C’est pourquoi je recommande d’apprendre Git via les invites de commande plutôt que les interfaces graphiques. C’est d’ailleurs la base de ma formation complète sur Git et Github.

L’interface graphique ne permet pas d’automatiser et de scripter

Ce dernier point, s’adresse plus à des utilisateurs un peu plus avancés. L’une des forces de Git en ligne de commande, c’est la possibilité de créer très simplement des scripts pour automatiser certaines tâches, comme par exemple mettre à jour les sources d’un gros projet qui comporte plusieurs dépôts en une seule action ou encore de migrer tous vos dépôts Git d’un hébergeur à un autre.

Lorsque l’on travaille sur un projet de moyenne ou grande envergure, il est fortement recommandé d’automatiser au maximum les tâches répétitives et longues qui peuvent l’être. C’est encore plus vrai dans le monde professionnel.  

Au final que faut il utiliser?

A la lumière des arguments que nous venons de voir, il serait  simpliste de dire qu’il ne faut utiliser que Git sous forme de ligne de commande. Il est vrai que cela permettrait sans problème de faire ce que vous voulez avec Git. Mais ce serait se passer d’avantages non négligeables des interfaces graphiques. C’est pourquoi je vous recommande d’utiliser les deux de manière judicieuse.

Utilisez une IHM plutôt pour:

  • Des opérations très visuelles (diff, indexation partiel, affichage de l’historique).
  • les opérations simples tel que le commit et le push, qui ne nécessitent pas forcément des options particulières.

Utilisez les lignes de commandes pour:

  • Apprendre à utiliser Git.
  • Créer des scripts et automatiser les tâches lourdes.
  • Les fonctionnalités non disponibles dans l’IHM.
  • Les opérations plus complexes (pull, rebase, merge, blame, …).

Et maintenant?

Si vous souhaitez apprendre à utiliser Git, je vous conseille soit un bon livre ou encore mieux une bonne formation vidéo!

Voici ma petite sélection:
Pour ceux qui, comme moi, préfèrent une bonne formation vidéo avec plus de pratiques que de théorie: Formation Vidéo
Pour les amoureux des livres
Pour les autres, La documentation officielle.

Recevez gratuitement votre fiche de synthèse sur l’outils Git

Vous trouverez dans ce document un condensé des commandes les plus utilisées avec à chaque fois une petite description de celle-ci.

En bonus, j’ai ajouté à la fin du document un schéma qui résume les différents workflows d’utilisation de ces commandes.

Votre email restera confidentielle, zéro spam.