Git/GitHub
Introduction
Git est un système de gestion de versions distribué, conçu pour suivre et gérer les modifications apportées aux fichiers au fil du temps. Il est largement utilisé dans le développement logiciel, permettant une collaboration efficace entre les développeurs tout en conservant un historique complet des changements.
Les principales fonctionnalités de Git incluent :
- La gestion simultanée de plusieurs versions d’un projet.
- La possibilité de revenir à des états antérieurs en cas de besoin.
- La facilitation du travail en équipe sur un même projet, tout en minimisant les conflits liés aux modifications.
Mise en contexte
Avant que Git voit le jour, les équipes travaillaient principalement de deux façons: les commentaires de journal et des logiciels de versionnage centralisés.
Les commentaires de journal peuvent ressembler à ceci:
// Philip Higgins 2026-01-26 Work Order 26: Refactor time-sensitive SQL queriesCertaines compagnies fonctionnent encore de cette manière, mais le code devient pollué: si 20 devs changent la même ligne de code, on a plus de commentaires que de lignes de code! Aussi, il devient difficile de voir la progression de cette ligne de code.
Avant, on utilisait le gestionnaire de versions centralisé SVN (Apache Subversion), mais il avait plusieurs hics:
Si deux personnes veulent modifier le même fichier en même temps, le premier à travailler dessus “verrouille” souvent le fichier, bloquant les autres développeurs.
Si le serveur tombe en panne ou sans réseau, on ne peut pas faire de changements, ni voir l’historique, parce que c’est sur un serveur local.
Chaque version (branche) du projet nécessite les fichiers complets de code, rendant les fusions de code pénibles et les branches lourdes (jusqu’à 1 Gig par branche).
En 2005, en travaillant sur le noyau Linux, Linus Thorvalds, roi de l’open source, crée Git en quelques semaines et règle tous ces problèmes.
Maintenant, tout est décentralisé, il est possible de travailler à partir de partout: chaque ordinateur agit comme un serveur. Des équipes complètes peuvent travailler sur les mêmes fichiers en même temps. Aussi, une branche ne pèse plus que 40 octets.
