git
git est un logiciel de gestion de versions décentralisé. Son rôle principal est d'assurer le suivi des modifications dans un ensemble de fichiers. Il repose sur un système d'archivage de fichiers adressable par le contenu via l'utilisation de fonctions de hachage cryptographiques (SHA-1) pour indexer les fichiers.
git est principalement utile avec des fichiers au format texte (code source, fichiers de configuration,...) mais il peut aussi gérer des documents binaires de manière efficace.
Comme tout logiciel de gestion de version, il permet d'enregistrer les modifications successives de l'ensemble des fichiers, de visualiser l'historique des modifications, de gérer des branches de modifications parallèles.
Son aspect distribué rend cette dernière fonctionnalité particulièrement puissante. Chaque utilisateur
disposant d'une copie locale de l'historique du projet, il est possible de travailler hors-ligne, les outils de fusion des branches permettant ensuite de résoudre les éventuels conflits.
Enfin git permet de gérer de nombreux types de flux de travail, que ce soit pour un utilisateur isolé, des petits groupes de travail informel ou des gros projets nécessitant le respect de règles précises.
- Interfaces avec d'autres systèmes de gestion de versions : git permet d'importer des dépôts existants de CVS, SVN ou Perforce.
- Interfaces graphiques en plus des outils de base en ligne de commande : git dispose d'outils graphiques pour visualiser l'historique des modifications d'un dépôt, soit intégrés dans la distribution de base (gitk, git-gui, gitweb) soit sous forme de logiciels tiers (qgit, giggle, ...)
- « hooks » à tous les niveaux permettant d'insérer dans le processus des procédures de vérification du code, d'envoi de messages d'information,...
git est multi-plateformes (Unix (Linux, BSD, Solaris,...), Mac OS X, Windows). En plus de ses fonctions d'import/export vers d'autres systèmes de gestion de versions, il existe des plugins pour l'insérer dans de nombreux environnements de développement tels que Eclipse (egit), kdevelop, ou Xcode (voir liens dans logiciels connexes).
git-svn permet l'interopérabilité bi-directionnelle avec subversion.
L'outil Tortoise git permet une intégration avec l'explorateur de fichiers de Microsoft Windows.
De nombreux logiciels développés au laboratoire sont gérés sous git. Le service informatique propose un serveur d'hébergement git couplé au logiciel de forge Trac pour héberger les développements de chercheurs. En particulier les équipes du pôle robotique maintiennent l'ensemble de leurs développements mis à disposition sous licences libres sur ce serveur.
La principale difficulté de git est sa richesse fonctionnelle. Bien que les concepts et les commandes de base soient très faciles à comprendre, il y a derrière une richesse et une complexité qui peuvent dérouter certains utilisateurs.
git permettant une grande liberté dans le type d'organisation du développement, il faut se donner des moyens organisationnels pour gérer et canaliser le développement de projets de grande taille.
Commentaires
en compléments d'infos...
en logiciels connexes, je compléterai la liste par:
- smartgit (http://www.syntevo.com/smartgithg) pour les 3 os (win/mac/nix)
- tig (http://jonas.nitro.dk/tig) pour mac/nix, un text-mode interface sympa pour git
- sourcetree (https://www.atlassian.com/software/sourcetree) de chez Atlassian pour Mac/Win
pour mac:
- gitx (http://gitx.frim.nl) => installation via port ($port install gitx)
et un très bon lien tuto pour bien commencer avec git en images et qui résume les commandes les plus utilisées.
https://www.atlassian.com/fr/git
La référence sous forme de livre en ligne avec ProGit
http://git-scm.com/book/fr
my 2cts
Référence visuelle de git
C'est tout dit dans le titre. http://marklodato.github.com/visual-git-guide/inde...
Merci à ChM pour ce pointeur.