Git/Passer de Subversion à Git
Si vous maîtrisez subversion, vous aller sûrement être perturbé dans votre passage à git. En effet, l'écart entre gestion de version centralisée et gestion de version décentralisée est important et ces deux outils ne s'utilisent pas du tout de la même façon même s'il y a des similitudes.
Ce chapitre s'adresse aux personnes qui utilisent subversion et il vise à lever les ambiguité et les confusions qui surgissent quand on découvre git.
Quelques confusions habituelles
modifier- Les tags ne sont pas des branches
- Dans subversion, on crée un tag par copie du trunk dans un nouveau dossier qui porte le nom du tag. On recrée ainsi toute l'arborescence du trunk dans un dossier (en fait, une branche puisque c'est une dérivation du tronc) du dépôt. Dans git, les tags ne sont pas des branches. Un tag désigne simplement un commit précis du dépôt.
- L'opération commit n’envoie aucune information vers le dépôt distant
- Dans subversion, commit envoie toutes les modifications réalisées sur votre copie locale vers le dépôt distant. Dans git, commit enregistre les modifications dans votre dépôt local.
- L'opération checkout ne récupère pas un dépôt distant mais change la branche courante.
Équivalences entre les commandes git et les commandes subversion
modifierLa principale différence entre Git et Subversion (Svn) est que Git possède un dépôt local intermédiaire entre la copie de travail où les fichiers sont modifiables directement et le dépôt distant. Il peut aussi n'y avoir pas de dépôt distant, surtout en début de projet. Cette section suppose qu'un dépôt distant existe, si ce n'est pas le cas, il suffit de ne pas exécuter les commandes le concernant.
Récupérer un dépôt distant
modifierPour Svn, cela crée une copie de travail. Pour Git, cela crée une copie de travail et un dépôt local.
Svn | Git |
---|---|
svn checkout repositoryurl |
git clone repositoryurl |
Soumettre les modifications locales
modifierSvn | Git |
---|---|
svn commit -m message |
git add files... |
Mettre à jour son dépôt local / sa copie de travail
modifierSvn | Git |
---|---|
svn update |
git pull |