Fiche logiciel validé
  • Création ou MAJ importante : 17/07/08
  • Correction mineure : 17/07/08
Auteur :
Relecteur(s) :
Responsable thématique :
Mots-clés

Git : gestionnaire de version décentralisé

Description
Fonctionnalités générales : 

GIT est un gestionnaire de version décentralisé qui permet, comme d’autres outils (CVS, SVN, …), de gérer le contenu des fichiers sources d’un logiciel. En particulier, il permet de :

  • Conserver toutes les versions de tous les fichiers
  • Récupérer toutes les versions de tous les fichiers
  • Comparer les versions des fichiers
  • Gérer une arborescence
  • Travailler de manière coopérative
Autres fonctionnalités : 

Contrairement à d’autres outils de gestion de version, GIT ne possède pas de dépôt centralisé (comme par exemple CVS). Chaque copie de travail possède son propre dépôt et permet le développement local. La synchronisation des dépôts locaux peut se faire avec d’autres dépôts, y compris des dépôt publics partagés (ouverts aux committers d’un projet comme dans le modèle CVS). Le système distribué permet d’avoir plusieurs serveurs contenant le code source, chaque serveur possédant éventuellement son propre historique. Chaque serveur peut se synchroniser à partir de différentes sources.

GIT facilite grandement la création, la fusion des branches ce qui incite les développeurs à créer d’avantage des branches de test pour revenir à une branche principale par la suite.

Résumé des fonctionnalités :

  • Gestion d’une arborescence locale
  • Chaque client possède son dépôt local
  • Changement de branche et fusion de branche en local
  • Travail hors ligne sans connexion réseau
  • Accès extérieur uniquement pour la mise à jour du dépôt local ou la mise à jour du dépôt distant
  • Synchronisation avec une arborescence distribuée : serveur HTTP et démon GIT, SSH, FTP

Les commandes Git sont organisées selon le profil de l’utilisateur :

  • Développeur Individuel (Standalone)
  • Développeur Individuel (Participant)
  • Intégrateur
  • Administrateur du dépôt
Interopérabilité : 

Interopérabilité avec les autres gestionnaires de version CVS, SVN, Arch.

Contexte d'utilisation : 

GIT est utilisé au LAAS en particulier dans les projets de robotique et de façon individuelle dans des groupes de recherches. GIT donne satisfaction aux utilisateurs par sa facilité d’utilisation, sa robustesse, son modèle totalement distribué et sa gestion des branches.

Limitations, difficultés, fonctionnalités importantes non couvertes : 

Des conflits peuvent apparaître lors de la fusion de branches locale/locale, locale/distante, distante/locale. Dans ce cas GIT affiche les zones de conflits qu’il convient de résoudre manuellement.

Le modèle totalement distribué nécessite une modification des habitudes de développement pour les personnes habituées aux outils centralisés comme CVS ou SVN.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré : 

Il est aisé d’utiliser GIT sous toutes les distributions de Linux (un seul package à installer), tous les systèmes BSD et probablement tout système Unix disposant des outils de ligne commande GNU (bash, grep, …). Disponible sur Windows (Cygwin et version native de type TortoiseSVN en cours de développement) et MacOS X.

Plates-formes : 

Linux, *BSD, Solaris, MacOSX.

Logiciels connexes : 

interface web :

gitweb –Perl http://git.or.cz/gitwiki/Gitweb
gitarella –Ruby http://freshmeat.net/projects/gitarella/
git-php –PHP http://code.google.com/p/git-php/
cgit-C http://hjemli.net/git/cgit/about/

Visualisation historique :

gitk Tcl/Tk GUI distribué avec git.
git-gui, distribué avec git.
QGit - Qt GUI. http://sourceforge.net/projects/qgit
Giggle - Gtk+ GUI http://developer.imendio.com/projects/giggle

Autres logiciels aux fonctionnalités équivalentes : 
Environnement de développement
Type de structure associée au développement : 

GIT a été créé par et pour les développeurs du noyau Linux.
Il a été écrit à l’origine par Linus Torvalds et est actuellement maintenu par C Junio Hamano.

Eléments de pérennité : 
Références d'utilisateurs institutionnels : 
  • LAAS/CNRS pour le développement d’environnements dédiés à la Robotique (ex : groupe MRS projet BINAUR)
  • Equipe de développement de VideoLAN VLC issue de PolyTechnique Palaiseau (http://wiki.videolan.org/Git)
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums : 

Pour accéder à la liste de diffusion et à son archive: http://git.or.cz/#community
ou http://git.or.cz/gitwiki/GitCommunity

Documentation utilisateur : 

Documentation utilisateur en anglais :

Documentation en français :

Commentaires

autres fiches plume

D’autres fiches Plume décrivent des outils dont une fonctionnalité est la gestion de version :
http://www.projet-plume.org/fiches/rubriques_avanc...

Geneviève Romier