Versioning - GIT
5 minutes de lecture
Contexte

La gestion de versions consiste à gérer l'ensemble des versions d'un ou plusieurs fichiers. Essentiellement utilisée dans le domaine de la création de logiciels, elle concerne surtout la gestion des codes sources. L’énorme majorité des applications, qu’elles soient professionnelles ou non, utilisent un outil de gestion des versions. Avec des projets qui nécessitent de plus en plus de compétences variées, cet outil permet de collaborer de façon organisée. De nos jours, il y a de plus en plus de projets dit “open source”, c’est grâce à des outils tels que GIT, qui a été créé pour cet usage.

Mise en oeuvre

Pendant ma formation j’ai eu l'occasion d’utiliser GIT, qui est un des systèmes de versionning les plus répandus. J’ai ensuite eu l'occasion de m’en servir en entreprise. Lors de mon stage chez Kalisio par exemple, où les sources sont disponibles librement sur GitHub.

Pour l’anecdote, dans le premier projet où j’ai eu à utiliser GIT, cela nous a posé plus de problèmes qu’autre chose. En équipe de six nous devions créer deux applications, une pour poste fixe, l’autre pour mobile. Nous avons commencé par l’application PC et jusque-là, aucun problème avec GIT, je dirais même qu'à ce stade il était utile ! Mais les problèmes ont commencé à arriver quand nous avons commencé l’application mobile. Pour contextualiser, nous n’avions pas installé GIT dans le projet, mais sur le dossier qui le contenait. De cette manière nous voulions pouvoir mettre l'application mobile dans le même dossier, à côté de l’application bureau. Là a été notre erreur, car avec cette façon de faire nous avions tous les fichiers dans GIT, même ceux qui dépendent uniquement de nos machines personnelles. A partir de ce moment-là, à chaque fois que nous voulions mettre en commun notre travail, nous nous retrouvions avec des centaines de conflits, ce qui nous a fortement pénalisés. Au final, nous avons continué de nous transmettre les fichiers, mais par une clef USB que nous appelions entre nous “GIT”. Pour éviter ces désagréments nous aurions pu tout simplement utiliser l’intégration de GIT dans nos IDE, car nous n’avions pas conscience qu’il fallait ignorer certains fichiers, et l’IDE l'aurait fait pour nous.

Je m’en sers aussi dans mes projets personnels, par exemple l’ensemble des sources de mon site internet et de tous ses sous-domaines, sont sur GitHub. En plus de me permettre l’archivage de mon travail, cela me permet d'automatiser mon site web. En effet grâce à GitHub, il y a un lien entre la branche principale de mon dépôt et mon site internet. À chaque fois que je publie dans la branche principale, le contenu du site est automatiquement mis à jour.

Conclusion

J’utilise maintenant des systèmes de versionning depuis plusieurs années, ils font intégralement partie de ma routine de développement et c’est quelque chose que je maîtrise même s’il y a toujours quelque subtilité à apprendre. Même si au début, versionner son code peut sembler futile, on se rend vite compte de l’utilité que ça a, que ce soit au niveau de l’organisation ou de la sécurité. C’est une compétence clef dans mon parcours, tous les projets sur lesquels je travaille utilisent le GIT. Quelque chose que j’ai compris en utilisant GIT, c’est sa réelle utilité, donc si vous avez du mal à l'utiliser, arrêtez de vous dire que c’est une épine dans vos projets, et dites-vous plutôt que vous êtes en train d’aménager une voie rapide qui vous sera forcément bénéfique.

En tant que freelance nous sommes amenés à nous servir d’un système de gestion des versions quotidiennement. Je suis à l’aise avec eux maintenant, et plus on s’en sert, plus on est à l’aise avec. Et vu que la quasi-totalité des projets en ont l’utilité, je vais continuer d’apprendre naturellement sur ce sujet.

Réalisations