Fiche technique | |
---|---|
Catégorie : | Serveur de version |
Auteur : | Linus Torvalds / Software Freedom Conservancy |
Date de publication : | 2005 à maintenant |
Licence : | GPLv2 |
Site Web : | https://git-scm.com/ |
Introduction
Le serveur Git est une gestionnaire de version distribué gratuit et décentralisé créé à l'origine par Linus Torvalds (le créateur du noyau Linux). Il est distribué avec une licence GNU version 2 (GPLv2). Il est conçu pour gérer tout projet, du plus petit au plus grand, avec rapidité et efficacité. L'efficacité étant relative, il faut quand même changer quelques habitudes de travail, car il a son style bien à lui. Aussi, certaines personnes considère que Git est meilleur que le SVN, toutefois cette affirmation n'est pas exacte, car Git a des idées différentes de SVN et par conséquent, se serait comme dire que des pommes sont meilleures que des oranges. Il est tout de même assez étrange de constater que lorsqu'on va sur le site Web de Git, on voit des comparaisons avec SVN et on le considère comme l'ennemi à abattre tandis que sur le site SVN (SubVersion), il n'y a aucune mention de Git.
Voici les principales caractéristiques de Git :
- Contrôle de version distribué : Contrairement aux systèmes centralisés, Git conserve une copie complète du dépôt (repository) sur chaque poste de travail, ce qui permet de travailler hors ligne et d'éviter un point unique de défaillance.
- Branches légères et rapides : Git permet de créer, fusionner et supprimer des branches de manière très efficace. Cela facilite le travail en parallèle, l'expérimentation et l'isolation des nouvelles fonctionnalités ou des correctifs sans affecter le code principal.
- Système de commits : Git enregistre les modifications via des commits, ce qui permet aux développeurs de documenter chaque étape et de revenir facilement à des versions précédentes.
- Fusion et gestion des conflits : Git propose des outils puissants pour fusionner les modifications provenant de différentes branches et gérer les conflits, aidant ainsi les équipes à intégrer efficacement les contributions de multiples développeurs.
- Traçabilité et historique des modifications : Chaque commit est associé à un identifiant unique et contient des informations sur l'auteur, la date, le message de commit et les modifications exactes. Cela permet de suivre chaque changement dans le projet avec une transparence totale.
- Performances élevées : Git est optimisé pour des opérations rapides même sur de grands projets. Les opérations comme les commits, les différences (diff), et les fusions sont exécutées localement et sont donc très rapides.
- Sécurité : Git utilise SHA-1 (Secure Hash Algorithm) pour identifier chaque commit, assurant ainsi l'intégrité des données et empêchant la modification non autorisée de l'historique.
- Système de staging (index) : Git dispose d'une zone de staging, ou index, où les modifications peuvent être préparées avant d'être officiellement enregistrées dans l'historique avec un commit.
- Support de flux de travaux variés : Git s'adapte à différents flux de travaux de développement, comme les modèles de branchement Git Flow ou GitHub Flow, permettant aux équipes d'adopter la méthode qui correspond le mieux à leur façon de travailler.
- Interopérabilité avec d'autres systèmes : Git peut être utilisé avec d'autres systèmes de contrôle de version grâce aux commandes d'import/export, ce qui le rend adaptable aux projets ayant déjà des antécédents dans d'autres outils de versioning.
Remarques
- Il existe de nombreux hébergeurs de serveur Git, comme par exemple GitHub, Gitlab et Gogs.
- Il existe de nombreux logiciels de client Git comme par exemple : TortoiseGit, GitKraken, SmartGit, Git Extensions, GitHub Desktop,...
- L'entreprise Microsoft utilise sa propre version de Git, appelé GVFS, laquelle a des possibilités encore plus puissante que leur serveur Team Foundation Server.
Concurrent
Les concurrents sont assez nombreuses : Rational ClearCase (IBM), StarTeam VirtualTeam Server, Team Foundation Server (Microsoft), CVS, SVN, Mercurial,...
Voir également
Système d'exploitation - Linux - Références de commandes et de programmes - git
Articles - SVN vs Git
Articles - Pourquoi un déploiement ne fonctionne pas ?