Caractéristiques-clefs
- Home URL
- https://git-scm.com
- Source URL
- https://git.kernel.org/pub/scm/git/git.git
- Licence
- GPL-2.0-only
- Fiche SILL
- https://code.gouv.fr/sill/detail?name=Git
- Développeur(s)
- Software Freedom Conservancy, Linus Torvalds, Junio C Hamano
Description
Présentation rapide et historique
Git est un logiciel de gestion de versions décentralisé créé par Linus Torvalds, auteur du noyau Linux, en 2005. Initialement conçu pour gérer les différentes versions du code source du noyau Linux, Git a rapidement gagné en popularité et est devenu l'un des outils de gestion de versions les plus utilisés dans le monde de la programmation. Git est distribué selon les termes de la licence publique générale GNU version 2.
Au fil des années, Git a évolué pour devenir un outil incontournable pour les développeurs, offrant une flexibilité et une efficacité inégalées pour la gestion des versions de code. Sa conception décentralisée permet à plusieurs développeurs de travailler sur un projet en même temps, sans avoir besoin d'un serveur central pour gérer les versions. Cette caractéristique a grandement facilité la collaboration et l'intégration continue dans les projets de développement logiciel.
Caractéristiques et fonctionnalités
-
Gestion décentralisée : Git permet à plusieurs développeurs de travailler sur un projet en même temps, sans avoir besoin d'un serveur central pour gérer les versions. Chaque développeur possède une copie complète de l'historique du projet, ce qui améliore la résilience et la flexibilité du système.
-
Versionnage des fichiers : Git permet de créer des versions de fichiers et de les gérer de manière efficace. Chaque modification est enregistrée comme une nouvelle version, permettant ainsi de suivre l'évolution du projet au fil du temps.
-
Contrôle de version : Git permet de savoir qui a modifié quoi, quand et pourquoi. Cette fonctionnalité est essentielle pour la traçabilité et la responsabilité dans les projets collaboratifs.
-
Fusion des branches : Git permet de fusionner des branches de code pour intégrer les modifications apportées par différents développeurs. Cette fonctionnalité facilite la collaboration et l'intégration continue.
-
Échange de données : Git permet d'échanger des données avec d'autres développeurs ou avec un serveur distant. Les commandes
git pull
etgit push
sont couramment utilisées pour synchroniser les modifications entre les dépôts locaux et distants. -
Intégration avec d'autres outils : Git peut être intégré avec d'autres outils de développement, tels que les éditeurs de code et les systèmes d'intégration continue. Cette intégration permet d'automatiser et de rationaliser le processus de développement.
-
Gestion des dépendances : Git permet de gérer les dépendances entre les différents composants d'un projet. Cette fonctionnalité est particulièrement utile pour les projets complexes nécessitant une coordination étroite entre plusieurs modules.
-
Gestion des droits d'accès : Git permet de gérer les droits d'accès pour les différents développeurs travaillant sur un projet. Cette fonctionnalité est essentielle pour la sécurité et la gestion des permissions dans les projets collaboratifs.
-
Consultation de l'historique : Git permet de consulter l'historique des modifications apportées au code. La commande
git log
est couramment utilisée pour afficher l'historique des commits. -
Réinitialisation des versions : Git permet de réinitialiser les versions pour annuler des modifications indésirables. Les commandes
git reset
etgit revert
sont souvent utilisées pour revenir à des états antérieurs du projet. -
Mise en place de workflows personnalisés : Git permet de mettre en place des workflows personnalisés pour soutenir la collaboration et la gestion des versions. Les branches de fonctionnalités, les branches de release et les branches de maintenance sont des exemples courants de workflows personnalisés.
Git offre un grand nombre de commandes pour gérer les versions et les workflows, dont les commandes les plus courantes sont :
git init
pour initialiser un dépôt localgit add
pour ajouter des fichiers au dépôtgit commit
pour créer une nouvelle versiongit log
pour consulter l'historique des modificationsgit branch
pour créer une nouvelle branchegit merge
pour fusionner des branchesgit pull
pour récupérer des modifications à distancegit push
pour envoyer des modifications à distance