Pourquoi utiliser git plutôt que subversion ?
21/ 03/ 2008
C’est une question que je me suis déjà posé plusieurs fois quand je vois les gurus de la communauté Ruby On Rails passer un par un à Git.
Tout d’abord qu’est-ce que Git : Git est un gestionnaire de code source, il a été créé à la base par Linus Torvalds afin de gérer le développement du noyau Linux.
Alors les avantages par rapport à subversion que j’ai pu noter sont :
- la facilité de créer des branches parallèles au “développement normal” d’un projet, permettant ainsi de tester des choses experimentales où des migrations d’application vers une nouvelles version de framework (comme Rails 2)
- La possibilité de commiter ses modifications off-line et de pousser par la suite sur le référentiel en ligne
Je vais passer l’installation de Git sur les différents OS. Je laisse Google vous aider sur ce coup là.
Ce qui est intéressant avec Git, c’est que l’on peut l’utiliser en complément de Subversion.
C’est à dire utiliser Git sur sa machine locale pour profiter des commits locals et la création de branches et de pousser ses modifs ultérieurement sur le référentiel subversion.
Alors, allons y. Tout d’abord, configurons Git sur notre machine pour lui indiquer le nom et l’email qui sera renseigné dans nos commits :
$ git config --global user.name=Mathieu Fosse $ git config --global user.email=mathieu.fosse@gmail.com
Ensuite nous allons indiquer à Git que l’on veut activer la couleur les commandes (status, diff et branch) histoire que ça soit un peu plus sympa !
$ git config --global color.status=auto $ git config --global color.diff=auto $ git config --global color.branch=auto
Bon maintenant on peut récupérer un projet existant sous subversion et utiliser Git avec. Démonstration :
Récupération du projet sous subversion et transformation au format Git :
$ git-svn clone http://svn.domain.com/svn/monprojet/trunk monprojet
Voilà notre projet peut être maintenant géré à l’aide de Git et pousser les modifications ensuite sur le référentiel subversion.
Quelques commandes pour vous aidez :
Afficher le statut des fichiers :$ git status
Commiter ses modifs en locals :
$ git commit -a -m "Ajout de modifications"
Afficher la branche sur laquelle on se trouve :
$ git branch
Créer une nouvelle branche et se lier à celle-ci :
$ git checkout -b rails2_migration
Créer une branche sans se lier à celle-ci :
$ git branch master
Afficher les logs de la branche courante :
$ git log
Changer de branche (ici master la branche par défaut) :
$ git checkout master
Enfin, une fois que vos modifs vous semble aboutis vous pouvez les pousser sur le référentiel subversion à l’aide de la commande suivante :
$ git-svn dcommit
Et si au contraire, vous voulez récupérer des modications provenant du référentiel subversion, il vous faut exécuter cette commande :
$ git-svn fetch
J’essairaie dans un futur proche de continuer ce billet sur Git pour qu’il soit plus complet.
