Un billet sur Git

Hop, un petit billet sur Git, parce que Git, c’est bon, mangez-en. Git est un système de suivi de versions décentralisé, ça veut entre autres dire qu’on peut commiter son boulot sans avoir accès au repository distant, ce qui est plutôt agréable. Autre intérêt, on peut « gitiser » un répertoire quelconque à la volée en une demi-commande, ce qui est bien pratique aussi par rapport à « mettre en place le repo Subversion ».

J’avais déjà pas mal entendu parler de Git quand je suis tombée dans le RSS d’Unix Garden sur cet exceeeeellent article de l’ami ange intitulé Git pour les (futurs) barbus. C’est une super introduction qui explique tout bien, donc ami lecteur, va lire la bonne parole, va.

Bon, après, comme je suis une grosse feignasse et qu’en général je bosse toute seule (mettons à deux) sans avoir trop à me soucier d’éventuels conflits, voilà à peu près ce que je retiens de tout ça :

 $ git init $ git add monbofichieràmoiquej'ai $ git commit $ git push ssh://monserveuràmoi/monrepogitdansmoncoin 

et des fois quand j’y pense

 $ git repack && git prune 

mais ça pas toujours parce que, comme dit plus haut, grosse feignasse, tout ça. Quand j’arrive sur une autre babasse,

 $ git clone ssh://monserveuràmoi/monrepogitdansmoncoin 

et entre temps

 $ git pull ssh://monserveuràmoi/monrepogitdansmoncoin 

Bon, voilà, mon utilisation de Git se limite à peu près à ça. Enfin, se limitait à peu près à ça jusqu’à il y a deux ou trois jours, où j’ai discuté de git-svn avec Alexandre. Supposons l’espace d’un instant que nous disposions d’un repository SVN quelque part, mais que nous ayons nos ptites habitudes avec Git. On commence par récupérer la version courante du dépôt :

 $ git svn init https://monserveursvn/monreposvn/ $ git svn fetch -rmarévisioncourante 

On travaille tranquillou dans le repo :

 $ git add monfichier $ git commit 

L’équivalent du svn up est

 $ git svn rebase 

Et pour pusher sur le SVN distant, on commence par ranger les commits Git dans l’ordre et les regrouper éventuellement (pour pas faire 50 commits sur le serveur SVN en face) :

 $ git log $ git rebase -i monidentifiantdedernierpushsvn $ git svn dcommit 

C’est pas la VIE ça ?