Git - Système de contrôle de versions

Publié le 01 mars 2009 par Mandemoil
Git est un système de contrôle de versions décentralisé créé par Linus Torvalds, le créateur du noyau Linux (Git is British slang for "silly, stupid, or worthless person).
De façon sarcastique Linus a dit ce qui suit:

Alternatively, in Linus' own words as the inventor of git: "git" can mean anything, depending on your mood:



  • Random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of "get" may or may not be relevant.

  • Stupid. Contemptible and despicable. Simple. Take your pick from the dictionary of slang. "Global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.

  • "Goddamn idiotic truckload of sh*t": when it breaks

Simple et très performant, il résout de nombreux problèmes posés par les systèmes classiques comme CVS ou Subversion.
Particularités techniques (source wikipedia) :
Comme BitKeeper, Git ne repose pas sur un serveur centralisé. C'est un outil bas niveau, qui se veut simple et très performant, dont la principale tâche est de gérer l'évolution du contenu d'une arborescence.
Git indexe les fichiers d'après leur
somme de contrôle (Fonction de hachage) calculée avec la fonction SHA-1. Quand un fichier n'est pas modifié, la somme de contrôle ne change pas et le fichier n'est stocké qu'une seule fois. En revanche, si le fichier est modifié, les deux versions sont stockées sur le disque.

Fonctionne sur beaucoup de plateforme (Linux, Solaris, OS X et même Windows!!!!). Plusieurs projets connus utilisent Git pour gérer leur versions : Linux Kernel, Perl, Ruby on Rails, Android, WINE, Fedora, X.org, VLC et Prototype pour nommer que ceux-là.
Git c'est quoi au juste (il est temps, méchante intro!!!!):
Il permet ainsi de travailler tout en gardant une trace des modifications apportées successivement, et de retrouver ainsi l'état antérieur de ses données.
Il permet également, comme beaucoup de ses congénères, de travailler à plusieurs sur un même projet. Mais contrairement à CVS ou Subversion, par exemple, Git ne fait pas de différence entre un dépôt principal et les copies locales chez les différents contributeurs.
Ce système permet également une organisation hiérarchisée de gros projets, comme c'est le cas du noyau Linux, en rendant complètement naturelle l'existence de dépôts alternatifs pour chaque sous-projet, avec une granularité de modifications très fine, et à plus grande échelle, une faible granularité du dépôt principal qui reçoit périodiquement les modifications par paquets.
À l'inverse, pour travailler à deux, git évite le casse-tête des droits d'accès dans le dépôt de l'autre. On peut en effet travailler de manière totalement symétrique, chacun recopiant les modifications de l'autre : il suffit d'un accès en lecture aux fichiers de ses collaborateurs.

Pour avoir une liste des logiciels pour le contrôle de versions : List of revision control software

Un excellent billet traitant de la différence entre les différents logiciels disponibles : Comparison of Revision Control Software

Et finalement : Free Source Code Version Control Management Software

Avec toute cette information vous devriez être ne business pour faire un choix éclairé. Pour ma part j'ai eu une période CVS, une période Subversion, une mauvaise période pour laquelle j'ai été contraint d'utiliser Visual Source Safe, pour revenir à Subversion... Mais je me propose de faire un petit croche vers Git.

La vie est belle mes amis.

http://technorousseau.blogspot.com