Git à tous les étages

Niveau : Star Star Star Empty Empty
Résumé : git

Git est un sys­tème de suivi de ver­sion. Git est beau, git est sim­ple, git a été fait par Linus Tor­valds.

Tout seul

Dans une uti­li­sa­tion de pre­mier niveau, git peut fonc­tion­ner comme RCS, c’est-à-dire en local.

Créons un dépôt local dans le réper­toire que nous vou­lons ver­sio­ni­ser :

$ git init

Fini !

Ajou­tons un fichier au suivi des ver­sions :

# add est récursif par défaut
$ git add monfichier
$ git commit -a

Bon je pense que vous avez com­pris, donc je vous la fais courte. Pour avoir la docu­men­ta­tion d’une com­mande il suf­fit d’ajou­ter un tiret après git. Exem­ple le manuel de “git add” est dans “man git-add” ou dans “git add —help”. Voyons les com­man­des de base uti­li­sées le plus fré­quem­ment, vous y recon­naî­trez cel­les qu’on trouve dans la plu­part des sys­tè­mes de suivi de ver­sion (CVS, RCS, SVN …) :

  • git add : Ajou­ter un fichier au suivi de ver­sion
  • git com­mit : Vali­der les modi­fi­ca­tions
  • git log : Pour voir les modi­fi­ca­tion récen­tes
  • git diff : Voir ce qui a changé pour un fichier depuis une cer­taine ver­sion
  • git revert : Annule une uni­que modi­fi­ca­tion (il est pos­si­ble d’annu­ler une modi­fi­ca­tion pas­sée sans annu­ler tout depuis ce moment)
  • git sta­tus : Savoir tout ce qui n’a pas encore été validé

Vous remar­que­rez que git uti­lise des som­mes sha1 pour iden­ti­fier les dif­fé­ren­tes ver­sions. Cela per­met d’être uni­ver­sel et de ne pas avoir de pro­blème de col­li­sion. Il vous fau­dra juste un peu de temps pour vous adap­ter à lire les logs avec des numé­ros aussi longs et non incré­men­taux.

A plu­sieurs

Ensuite, un autre inté­rêt du suivi de ver­sion est aussi de tra­vailler à plu­sieurs. Git est un sys­tème de ver­sion dis­tri­bué, ce qui veut dire qu’il n’y a pas de dépôt cen­tra­lisé qui fait auto­rité. Il y a autant de dépôt que de per­sonne créant un dépôt et cha­cun peut aller pio­cher dans un ou plu­sieurs dépôts de ses voi­sins. C’est un peu anar­chi­que, mais ça cor­res­pond bien au déve­lop­pe­ment open­source. Et si vous vou­lez un dépôt d’auto­rité, vous pou­vez tou­jours créer un dépôt que décla­rez comme l’uni­que dépôt offi­ciel et tout le monde doit se syn­chro­ni­ser des­sus.

Un autre avan­tage de ce sys­tème est que cha­cun peut avoir ses pro­pres com­mit fré­quents pour sui­vre ce qu’il fait, et aggré­ger tous ces com­mits en une seule fois lors­que ce qu’il a fait fonc­tionne vrai­ment pour le vali­der sur un dépôt com­mun.

Voyons les com­man­des uti­les :

  • git clone : Créer un nou­veau dépôt de tra­vail basé sur un autre dépôt (public pour le par­tage)
  • git pull : Récu­père les nou­veau­tés sur un dépôt parent
  • git push : Dépo­ser ses modi­fi­ca­tions sur un autre dépôt (public pour le par­tage)

Tags et bran­ches

Bien sûr, comme dans tout bon sys­tème de suivi de ver­sion, git gère les tags et les bran­ches.

  • git branch : Pour gérer les bran­ches
  • git che­ckout : Change la bran­che de tra­vail
  • git show-branch : Affi­che la bran­che en cours
  • git merge : Pour mer­ger des bran­ches
  • git tag : Gère les tags

Fin

Bien sûr je n’ai pas tout dit. Il existe plus de 100 com­man­des git, à vous de les décou­vrir si vous en avez besoin. Pen­sez à des cho­ses bien sym­pa­thi­ques comme :

  • git bisect : Par­cou­rir tous les chan­ge­ments (avec recom­pi­la­tion et exé­cu­tion si besoin) à la recher­che de la source d’un pro­blème (par recher­che binaire)
  • git rebase : Change le dépôt parent per­met­tant de cal­cu­ler les patchs
  • git for­mat-patch : For­mate un mail pour envoyer un patch
  • git am : Appli­que des patch direc­te­ment en lisant une boîte mail

Et que dire des exten­sions comme git-svn qui per­met­tent de s’inter­fa­cer avec la plu­part des pro­jets exis­tant déve­lop­pés avec d’autres sys­tè­mes de suivi de ver­sion (ou ceux qui veu­lent uti­li­ser git dans une entr­prise qui ne jure que par svn).

Vous trou­ve­rez un peu plus de docu­men­ta­tion sur l’usage cou­rant de git sur http://www.ker­nel.org/pub/soft­ware/…. Une fiche de tra­vail sur http://jonas.nitro.dk/git/quick-ref… et une fiche bien plus détaillée sur http://cheat.err­the­blog.com/s/git

Com­men­cez à vous y met­tre, vous ver­rez que c’est rapi­de­ment pra­ti­que. D’ailleurs dès le pro­chain arti­cle je vais com­men­cer des cho­ses inté­res­san­tes avec git.

Vus : 253
Publié par Peck : 100