Git
Git
Git est un logiciel libre de gestion de versions décentralisée, largement utilisé dans le domaine de l’informatique, le développement logiciel et les projets collaboratifs, notamment au sein des organisations de la fonction publique. Créé en 2005 par Linus Torvalds, l’architecte du noyau Linux, Git est devenu un standard incontournable dans la gestion de code source et la collaboration sur des projets numériques.
Historique et Création
Git est développé en avril 2005 par Linus Torvalds, suite à la décision de l’équipe de développement du noyau Linux d’abandonner le système propriétaire BitKeeper. Parmi les contributeurs majeurs à ses débuts figurent Junio C Hamano, qui est devenu par la suite le mainteneur principal du projet. Git a été distribué sous la GPL v2.
Concepts fondamentaux
Git repose sur plusieurs concepts structurants :
- Dépôt (repository) : Un espace où sont stockées toutes les versions de fichiers d’un projet, localement et à distance.
- Commit : Un enregistrement atomique des changements apportés à un projet.
- Branche (branch) : Une ligne indépendante de développement.
- Fusion (merge) : L’opération qui permet de combiner plusieurs branches.
- Clone : La duplication complète d’un dépôt, permettant un travail hors-ligne.
- Staging area : Zone temporaire où sont préparées les modifications avant validation.
- Remote : Référence à une version distante du dépôt, souvent sur une plateforme comme GitHub ou GitLab.
Fonctionnalités principales
Git se distingue par plusieurs fonctionnalités majeures :
- Gestion décentralisée des versions
- Suivi des historiques de modifications
- Gestion avancée des branches et fusions
- Optimisation des performances pour des projets volumineux
- Fonctionnement hors-ligne (local) grâce à la duplication intégrale du dépôt
- Collaboration simplifiée et contrôle d’accès
Utilisation dans la fonction publique
De plus en plus, des institutions de la fonction publique (telles que la DINUM ou l’ANSSI) adoptent Git pour automatiser, sécuriser et moderniser la gestion de leurs projets informatiques. Les équipes utilisent souvent la plateforme GitLab ou des instances privées de Gitea, en particulier dans les contextes où la maîtrise et la sécurité des données sont essentielles.
Commandes principales
Voici un tableau présentant quelques commandes Git courantes et leur utilité :
| Commande | Description |
|---|---|
git init
|
Initialise un nouveau dépôt local. |
git clone
|
Crée une copie d’un dépôt distant. |
git add
|
Ajoute des fichiers à la zone de transit. |
git commit
|
Enregistre les modifications en local. |
git push
|
Envoie les commits vers un dépôt distant. |
git pull
|
Récupère et fusionne les modifications d’un dépôt distant. |
git merge
|
Fusionne deux branches. |
git branch
|
Liste, crée ou supprime des branches. |
git status
|
Affiche l’état des fichiers du dépôt. |
Avantages
Git présente de nombreux avantages dans la gestion de projets informatiques :
- Robustesse et fiabilité
- Performance sur les grands ensembles de données
- Système distribué facilitant le travail collaboratif même sans connexion continue
- Adaptabilité aux processus métier particuliers dans la fonction publique
- Intégration aisée avec des systèmes de intégration continue et d'automatisation comme Jenkins, Travis CI ou GitHub Actions
Plateformes et outils associés
L’écosystème Git comprend de multiples forges et outils d’intégration :
- GitHub : Plateforme populaire pour l’hébergement et la collaboration sur des projets open source et privés.
- GitLab : Solution open source également utilisée en interne par de nombreuses administrations.
- Bitbucket : Plateforme orientée entreprises.
- Gitea : Alternative légère largement adoptée dans le secteur public.
- SourceForge : Plateforme historique de gestion de projets open source.
- Outils graphiques : Sourcetree, GitKraken, TortoiseGit, Git Cola.
Cas d’usage dans la fonction publique
L’intégration de Git dans la fonction publique couvre divers cas :
- Gestion collaborative de code (ex : développement des services numériques de l’État)
- Documentation versionnée
- Rédaction et suivi de référentiels techniques
- Coordonnation multi-site de projets entre différentes directions et établissements publics
Liens avec d’autres systèmes de gestion de versions
Avant Git, d'autres systèmes étaient répandus comme CVS, SVN, Mercurial, Perforce et Bazaar. Git se distingue par son architecture totalement décentralisée et ses performances supérieures.
Standards et sécurité
L’utilisation de Git dans des contextes critiques repose sur la conformité à des normes comme l’ISO/CEI 27001, ainsi que sur l’usage de protocoles sécurisés comme SSH et HTTPS. De plus, certains outils de contrôle d’accès comme LDAP sont fréquemment utilisés pour gérer les droits utilisateurs.
Exemples de projets publics utilisant Git
- Code.gouv.fr : Plateforme officielle rassemblant les codes sources produits par les services publics français.
- Ministère de la Fonction publique : Utilisation interne lors du développement d’outils numériques.
- Projets open source initiés par l’INSEE, l’Etalab, ou la Mairie de Paris.
Voir aussi
Références
- Linus Torvalds, Creation of Git [1]
- Site GitHub officiel
- Site GitLab officiel
- Code.gouv.fr