Blog / Article #34
Les mauvaises excuses pour ne pas utiliser GIT

star

24 Juillet 2014

Les mauvaises excuses pour ne pas utiliser git

git

GIT est partout !

Aujourd'hui, vous aurez du mal à trouver un développeur professionnel qui n'utilise pas un système de contrôle de version (VCS), comme Git, mais il y a encore une partie d'entre nous qui choisissent de ne pas utiliser de VCS à cause de certaines idées préconçues qu'ils pourraient avoir au sujet du contrôle de version. Voici quelques excuses qui dissuadent l'utilisation de Git chez certains développeurs (un système de contrôle de version en général) dans leur flux de travail.

Je n'ai pas besoin de Git parce que je sauvegarde mes fichiers.

Créer des sauvegardes régulières de votre travail est certainement une bonne habitude. Envisagez de garder cette habitude, même en utilisant Git mais ce dernier vous fournit beaucoup plus d'avantages en comparaison d'un simple système de sauvegarde de fichiers.

Sans un Git (ou autre VCS), vous tomberez sur un plusieurs questions.

Comment vous nommez-vous vos sauvegardes?
Si vous êtes une personne très organisée, vous pourriez être en mesure de vous en tenir à un schéma de nommage parfaitement compréhensible comme projet-redesign_2014-07-24_v1.0.zip . (super) Cependant, tout changement de la convention de désignation des fichiers conduit rapidement à la confusion et, très probablement, à des problèmes avec votre code tot ou tard. Laissez un système comme Git gérer avec précision les modification afin que vous puissiez vous concentrer sur ce que vous faites le mieux: L'écriture de code.

Quelle partie de votre travail devez vous sauvegarder ? Seuls les fichiers modifiés ou l'ensemble du projet ?
Dans le premier cas il sera difficile de voir une image complète d'une version / variante de votre projet à un moment donné. Dans le deuxième, où vous sauvegardez l'ensemble du code de base à intervalles réguliers, vous aurez de grandes quantités de fichiers redondants qui traînent sur votre disque dur, et ces tonnes de fichiers vont surement amener leur lot de complications.

La question la plus importante qui peut être résolu avec Git est probablement celle-ci:

Comment savez-vous ce qui est différent dans ces sauvegardes puisque très peu de gens prennent vraiment le temps de documenter soigneusement chaque changement qu'ils font. On se dit toujours qu'on se souviendra... mais en fait quelques mois plus tard on passe la moitié de l’après midi à chercher à quoi correspond ce tas de fichiers... Git lui se souvient parfaitement de tout. Toutes les versions antérieures et variantes sont soigneusement placées dans le back-end du système de contrôle de version, prête a ressortir pour votre plus grand bonheur dès que vous en aurez besoin. Et quand ce jour arrivera, vous pourrez demander une version à tout moment et vous aurez un aperçu de l'ensemble du projet à portée de main.

En outre, vous pouvez déterminer avec une grande précision ce qui a changé dans chaque fichier grâce à la 'phrase de commit'. Vous pouvez dire que les fonctionnalités ont été ajoutées, certaines supprimés, ou décrire celles qui ont été modifiés, ce qui signifie que le traçage de bugs, les restaurations d'urgence aux versions stables ou les développements de version alternatives sont des processus beaucoup plus simples.

Git est trop compliqué. Ça ne vaut pas la peine.

Quand j'ai découvert Git je l'utilisais depuis mon IDE qui m'offrait une sorte de GUI très pratique pour contourner le problème de l'apprentissage de base. Je pensais à tort qu'il était obligatoire de rentrer dans les profondeurs de Git pour bénéficier de tous ses avantages. Il est vrai que vous pouvez passer beaucoup de temps à brutaliser votre cerveau en essayant d'apprendre toutes les commandes et arguments en mode bourrin, mais c'est pas évident et au final il faudra quand même piocher dans la doc le jour ou ça coincera. Car oui ! des fois ça coince! Mais en général on trouve toujours rapidement la solution qui va bien, sur StackOverflow notamment.

En fait ce qu'il faut se dire et retenir, c'est que vous pouvez travailler de façon productive et bénéficier des importants avantages de Git seulement avec une poignée de commandes. (add commit push pull etc...)

Oui, l'apprentissage d'une nouvelle compétence signifie forcément un travail plus complémentaire et personne ne peut vous épargner la lecture de la doc ou les tests sur des projets bidons ; mais les avantages que vous allez gagner lorsque vous commencerez à utiliser Git pour de bon l'emportent largement sur le temps et les efforts nécessaires pour apprendre à l'utiliser.

Apprendre Git c'est dans un premier temps améliorer la qualité de vos projets et votre productivité en tant que développeur. Mais dans un deuxième temps vous serez en mesure de collaborer avec d'autres développeurs d'une manière plus systématique et fiable. Vous imaginez si il fallait envoyer un zip contenant toutes les modifs de la journée à vos collaborateurs ? Et leur versions a eux ? Pff dur dur...

Git est seulement pour les équipes de développement

Les systèmes de contrôle de version comme Git ou Mercurial vous permettent de travailler sur votre ordinateur local. Si vous avez des projets perso ou que vous ne collaborez pas avec quelqu'un d'autre, il reste parfaitement valable pour effectuer toutes les tâches sur votre propre machine. Git fournit autant d'avantages pour le développeur solo qu'il le fait pour des équipes de dev.Vous n'avez pas forcement besoin d'un serveur distant ou d'un service d'hébergement de code pour utiliser Git et bénéficier de son utilité, mais il est intéressant de souligner que l'utilisation d'un service de code d'hébergement à distance comme GitHub est logique, même en tant que développeur solo, afin que vous puissiez avoir des sauvegardes externes de votre code dans le cas où votre ordinateur tombe en panne, ou pour synchroniser vos projets en toute sécurité sur plusieurs ordinateurs. Personnellement j'ai un ordinateur de bureau et un autre que je trimbale un peu partout ou j'ai besoin, et je trouve très appréciable de pouvoir me mettre à jour (synchroniser) en quelque clics. Les avantages que Git vous offre restent les mêmes, peu importe si vous travaillez dans une équipe ou en solo dans votre grotte.

L'interface de ligne de commande est trop compliquée

Vous n'avez pas besoin d'être un expert dans votre terminal pour utiliser Git. En fait, comme je l'évoque plus haut, une poignée de commandes est tout ce dont la plus part des développeurs ont besoin. Vous pouvez apprendre les commandes importantes de Git en moins d'une après-midi grâce aux tonnes de tutos 'étapes par étapes' relativement simplistes qu'on peut trouver partout sur le web.

Je veux bien croire que le terminal n'est pas ce qu'on trouve de plus chaleureux et qu’être en contact direct avec des commandes qui ne parlent pas forcement au premier abord est un sacré frein pour le débutant complet, surtout pour ceux qui ont fait un pacte de sang avec un ami révolté contre l'utilisation des CLI ... Bon heureusement il existe aussi tout un tas d'applications qui disposent d'une interface utilisateur graphique (GUI) comme je vous le disait plus haut avec Netbeans ou PhpStorm. Si vous êtes sous Windows, je vous recommande de jeter un œil à tortoisegit. Sous Mac OS, vous devriez aimer tower. Cela dit même pour les utilisateurs qui sont à l'aise avec la ligne de commande, une interface graphique pourrait encore améliorer la productivité en rendant certaines taches de Git plus simples et intuitives grave au coté visuel de l'interface, je pense notamment au glisser de branches etc..

Je crains de casser quelque chose...

Ça devrait être l'inverse ! Vous devriez avoir peur de planter votre projet si vous n'avez pas utilisé un VCS, car il est difficile de revenir sur vos pas et vos changements de code de base quand vous codez tout d'un trait. Le contrôle de version est un peu notre filet de sécurité. Quand les aléas de la vie font que tout se casse en morceaux, et que les erreurs 500 deviennent légion, on peut facilement revenir à une version précédente (qui est stable) => et recommencer ! :)

En utilisant Git, vous serez en mesure :

  • d'annuler vos modifications locales (partiellement ou totalement)
  • de restaurer une version historique en cas de problème
  • d'inverser l'effet de tout changement que vous avez fait dans le passé

Et je tiens également à souligner ce qui est à mon avis la caractéristique la plus importante de Git : les branches.

Les branches nous fournissent un écosystème sécurisé pour essayer de nouvelles fonctionnalités, complètement séparées des autres parties de notre projet de développement. Cette fonctionnalité m'encourage souvent à expérimenter des nouvelles choses en voyant et testant les effets des changements de code tout en ayant confiance... RIEN dans notre projet ne sera impacté en dehors de la branche courante. Ça marche, ça me plait, paf, je merge et c'est réglé.

Git est juste une tendance populaire qui disparaîtra.

Tout d'abord, Git n'est certainement pas le seul et unique système de contrôle de version. Il y a beaucoup d'autres VCS à considérer, chacun avec ses propres mérites on va dire. Je ne les connais pas suffisamment pour en parler plus précisément. Mais ce n'est pas tout simplement par hasard que les grands projets tels que jQuery, Rails et le noyau Linux, pour n'en nommer que quelques-uns, reposent sur Git pour le contrôle de version et le système collaboratif. Pour coder des projets, Git est actuellement l'un des meilleurs systèmes sur le marché.

Popularité

Être populaire et largement disponible est important pour tout système. Popularité signifie qu'il y a une communauté prête à vous aider à démarrer avec le système. Et quand vous vous trouvez en situation de développement collaboratif, il y a plus de probabilités que vos coéquipiers savent déjà comment on utilise Git.

Etant un VCS populaire, Git rend également attractif le développement d'outils ou de services par des tiers comme par exemple GitHub ou l'intégration du système dans les IDE. Cette popularité assure également que le projet open source de Git ne va pas disparaître de si tôt. S'engager dans un projet qui tient la route sur le long terme est un facteur important dans le choix d'une technologie pour un développeur. Je ne ferais pas de mauvaise blague pour ceux qui ont voulu me forcer à utiliser prototype en tant que framework JS il y a quelques années ^^
Voila, message passé amicalement :D

Bah ! Pourquoi n'êtes-vous pas en train d'utiliser Git ? Aller aller !


C'est mon anniversaire aujourd'hui ! nan je rigole tu +1 quand meme ? ^^

Auteur de l'article
Retour a la liste