Git est un système de contrôle de version à source ouverte reconnu pour sa rapidité, sa stabilité et son modèle de collaboration distribuée. Créé à l'origine en 2006 pour gérer l'intégralité du noyau Linux, Git dispose désormais d'un ensemble complet de fonctionnalités, d'une équipe de développement active et de plusieurs communautés d'hébergement gratuites..
Git a été conçu à partir de la base, accordant peu d’attention aux normes existantes des systèmes de version centralisés. Donc, si vous venez d'un contexte SVN ou CVS, essayez d'oublier tout ce que vous savez sur le contrôle de version avant de lire ce guide..
Le développement logiciel distribué est fondamentalement différent des systèmes de contrôle de version centralisés. Au lieu de stocker les informations sur les fichiers dans un seul référentiel central, Git donne chaque développeur une copie complète du référentiel. Pour faciliter la collaboration, Git permet à chacun de ces référentiels de partager les modifications avec n’importe quel autre référentiel..
Avoir un référentiel complet sur votre machine locale a un impact considérable sur le cycle de développement…
Premièrement, une copie locale du référentiel signifie que presque toutes les actions de contrôle de version sont beaucoup plus rapides. Au lieu de communiquer avec le serveur central via une connexion réseau, les actions Git sont effectuées sur la machine locale. Cela signifie également que vous pouvez travailler hors ligne sans modifier votre flux de travail..
Étant donné que chaque collaborateur dispose essentiellement d’une sauvegarde de l’ensemble du projet, le risque de panne du serveur, de corruption du référentiel ou de tout autre type de perte de données est bien inférieur à celui des systèmes centralisés reposant sur un seul point d’accès..
Chaque copie d'un référentiel Git, qu'elle soit locale ou distante, conserve l'historique complet d'un projet. Le fait de disposer d'un environnement de développement complet et isolé donne à chaque utilisateur la liberté d'expérimenter de nouveaux ajouts avant de les peaufiner en commits propres et publiables..
Un historique complet pour chaque développeur signifie également un divergent historique pour chaque développeur. Dès que vous effectuez un seul engagement local, vous n'êtes plus synchronisé avec tous les autres utilisateurs du projet. Pour faire face à cette énorme quantité de ramifications, Git est devenu très bon pour fusionner des lignes de développement divergentes..
Cette leçon représente un chapitre de Git Succinctly, un eBook gratuit de l'équipe de Syncfusion.