Maison  >  Article  >  outils de développement  >  Quelle est la différence entre svn et git

Quelle est la différence entre svn et git

藏色散人
藏色散人original
2020-05-14 11:54:0610615parcourir

Quelle est la différence entre svn et git

Quelle est la différence entre svn et git ?

La différence entre git et svn

GIT n'est pas seulement un système de contrôle de version, c'est aussi un système de gestion de contenu ( CMS), système de gestion du travail, etc. Si vous avez une expérience dans l'utilisation de SVN, vous devez effectuer quelques changements mentaux pour vous adapter à certains des concepts et fonctionnalités fournis par GIT.

1. GIT est distribué, SVN ne l'est pas :

C'est la différence fondamentale entre GIT et d'autres systèmes de contrôle de version non distribués, tels que SVN, CVS, etc. Si vous pouvez comprendre ce concept, vous êtes à mi-chemin. Un petit avertissement doit être fait, GIT n'est pas le premier ni le seul système de contrôle de version distribué actuellement. Certains systèmes, tels que Bitkeeper, Mercurial, etc., fonctionnent également en mode distribué. Mais GIT fait un meilleur travail à cet égard et possède des fonctionnalités plus puissantes.

GIT, comme SVN, possède son propre référentiel ou serveur centralisé. Cependant, GIT préfère être utilisé en mode distribué, c'est-à-dire que chaque développeur clonera son propre référentiel sur sa machine après avoir extrait le code du référentiel/serveur central. On peut dire que si vous êtes coincé dans un endroit sans accès à Internet, comme dans un avion, dans un sous-sol, dans un ascenseur, etc., vous pouvez toujours soumettre des fichiers, consulter les enregistrements de versions historiques, créer des branches de projet, etc. Pour certains, cela peut ne pas sembler très utile, mais lorsque vous vous retrouvez soudainement dans un environnement sans réseau, cela résoudra votre gros problème.

De même, ce mode de fonctionnement distribué est également un énorme cadeau pour le développement de la communauté du logiciel open source. Vous n'avez plus besoin de créer des packages de correctifs et de les envoyer par e-mail comme avant, il vous suffit de créer un A. branche qui envoie une requête push à l’équipe projet. Cela permet de garder votre code à jour et de ne pas le perdre pendant le transport. GitHub.com est un excellent cas.

Certaines rumeurs se sont répandues selon lesquelles les futures versions de Subversion seront également basées sur le modèle distribué. Mais au moins, ce n'est pas encore visible.

2.GIT stocke le contenu sous forme de métadonnées, tandis que SVN stocke le contenu sous forme de fichiers :

Tous les systèmes de contrôle de ressources masquent les métainformations des fichiers dans un dossier comme .svn, .cvs, etc. Si vous comparez la taille du répertoire .git avec celle du .svn, vous constaterez qu'elles sont très différentes. Étant donné que le répertoire .git est une version clonée du référentiel sur votre machine, il contient tout ce qui se trouve sur le référentiel central, comme les balises, les branches, les enregistrements de version, etc.

3. Les branches GIT sont différentes des branches SVN :

La branche n'est pas spéciale du tout dans SVN, c'est juste un autre répertoire dans le référentiel. Si vous souhaitez savoir si une branche a été fusionnée, vous devez exécuter manuellement une commande telle que svn propget svn:mergeinfo pour confirmer si le code a été fusionné. Merci à son camarade de classe Ben d'avoir signalé cette fonctionnalité. Il arrive donc souvent que certaines branches soient manquées.

Cependant, travailler avec les branches GIT est assez simple et amusant. Vous pouvez rapidement basculer entre plusieurs branches à partir du même répertoire de travail. Vous pouvez facilement trouver des branches non fusionnées et fusionner ces fichiers rapidement et facilement.

4. GIT n'a pas de numéro de version global, mais SVN en a :

Jusqu'à présent, c'est la plus grande fonctionnalité qui manque à GIT par rapport à SVN. Vous savez également que le numéro de version SVN est en fait un instantané du code source à tout moment correspondant. Je pense que c'est la plus grande avancée dans l'évolution de CVS vers SVN. Parce que GIT et SVN sont conceptuellement différents, je ne sais pas quelles fonctionnalités de GIT leur correspondent. Si vous avez des indices, partagez-les dans les commentaires.

Mise à jour : certains lecteurs ont souligné que nous pouvons utiliser le SHA-1 de GIT pour identifier de manière unique un instantané de code. Cela ne remplace pas complètement les numéros de version numériques faciles à lire dans SVN. Toutefois, le but devrait être le même.

5. L'intégrité du contenu de GIT est meilleure que celle de SVN :

Le stockage de contenu de GIT utilise l'algorithme de hachage SHA-1. Cela garantit l'intégrité du contenu du code et réduit les perturbations du référentiel en cas de panne de disque et de problèmes de réseau.

Recommandations associées : "Tutoriel Git"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn