Git a le vent en poupe ces derniers temps, de plus vous avez tous entendu plus ou moins parlé de github, ce sourceforce s’appuyant sur git au lieu de subversion.
Personnellement j’utilise subversion depuis quelques années maintenant, j’y suis habitué et je fais avec ses défauts.
Récemment j’ai décidé, suite à de nombreuses demandes de mettre à disposition mon framework également sur github pour faciliter les retours/corrections de bugs et les éventuels améliorations.
Mais voilà , j’ai mes habitudes et me suis retrouvé un peu désarmé en utilisant git, je vais résumer ici les différences à connaitre
La récupération des sources: svn checkout
Quand vous récupérez les sources d’un projet svn, vous vous rendez dans votre répertoire et vous executez
1 | svn checkout http://svn.votreProjet.com/trunk/ . |
Avec Git vous « clonez » votre dépôt
1 | git clone http://git.votreProjet.com |
Versionnez des nouveaux fichiers: svn add
Lorsque vous créez de nouveaux fichiers, vous les ajoutez au projet versionné par un
1 | svn add monNouveauFichier |
Sous git, ici c’est la même chose
1 | git add monNouveauFichier |
L’envoi de modifications: svn commit
Lorsque vous faites des modifications de fichiers, vous envoyez vos modification par un
1 | svn commit |
Sous git, c’est un peu différent: vous soumettez « localement » vos modification avec
1 | git commit |
note: si sous subversion le simple fait de modifier des fichiers suffit à les prendre en compte lors du commit,
sous git, il faut indiquer les fichiers que l’on veut prendre en compte dans le commit avec un
1 | git add |
Ou, si vous souhaitez qu’il commit tous les fichiers modifié, vous pouvez utiliser le paramètre -a pour « all »
1 | git commit -a |
Puis quand vous estimez avoir un lot « stable » vous pousser vos modifications locales vers le dépot distant
1 | git push |
Récuperez les mises à jour: svn update
Sous subversion, pour récupérer la version modifié par les collègues ou par vous même à partir d’un autre serveur
1 | svn update |
Sous git
1 | git pull |
Annuler des modification locales: svn revert
Quelques fois vous faites des modifications locales, et au moment de la mise à jour via svn, vous voyez un conflit. Et si vous estimez preferez la version du serveur vous faites un:
1 | svn revert monFichier |
Sous git
1 | git checkout monFichier |
Conclusion
Comme vous avez pu le lire, il y a quelques différences à connaitre entre subversion et git qu’il faut connaitre et apprendre lorsque l’on est habitué à subversion.
J’espère que ce petit récapitulatif aidera certains d’entre vous
N’hésitez pas à soumettre d’autres astuces/différences de commande entre svn et git, je les ajouterai à l’article