Git est un système de contrôle de version distribué open source, utilisé pour gérer efficacement et rapidement la gestion des versions de projets petits à très grands. svn est un système de contrôle de version centralisé open source utilisé par plusieurs personnes pour développer conjointement le même projet, réaliser des ressources partagées et, finalement, réaliser une gestion centralisée.
L'environnement d'exploitation de ce tutoriel : système Windows 7, Git version 2.30.0, ordinateur Dell G3.
Qu'est-ce que git
Git est un système de contrôle de version distribué open source gratuit pour un traitement agile et efficace de tout projet petit ou grand
Git est un système de contrôle de version distribué open source, utilisé pour gérer efficacement et rapidement gérer la gestion des versions de projets de petite à très grande taille. Git est un logiciel de contrôle de version open source développé par Linus Torvalds pour aider à gérer le développement du noyau Linux.
La plus grande différence entre distribué et centralisé est que les développeurs peuvent soumettre localement, et chaque développeur copie un référentiel Git complet sur la machine locale par clonage (git clone).
Git est un système de contrôle de version distribué
Git a les caractéristiques suivantes :
Le référentiel de chaque clone (clone) dans Git est égal. Vous pouvez créer votre propre référentiel à partir d'un clone de n'importe quel référentiel, et votre référentiel peut également être utilisé comme source pour d'autres si vous le souhaitez.
Chaque opération d'extraction de Git est en fait une sauvegarde complète du référentiel de code.
La soumission est entièrement effectuée localement, personne d'autre n'a besoin de vous donner d'autorisation, vous êtes le maître de votre référentiel et la soumission sera toujours réussie.
Même les modifications basées sur l'ancienne version peuvent être soumises avec succès, et la soumission créera une nouvelle branche basée sur l'ancienne version.
Les soumissions Git ne seront pas interrompues jusqu'à ce que vous soyez entièrement satisfait de votre travail. PUSH vers d'autres ou d'autres pour PULL votre référentiel se produira pendant les processus PULL et PUSH vous demandera terminé. manuellement.
La résolution des conflits n'est plus comme un concours de soumission comme SVN, mais une fusion et une résolution des conflits uniquement en cas de besoin.
Git peut également simuler un mode de travail centralisé
Le dépôt Git est placé sur le serveur
Vous pouvez autoriser le dépôt Git : qui peut créer le dépôt, qui peut pousser vers le dépôt, qui peut lire (cloner) le référentiel ?
Les membres de l'équipe clonent d'abord le référentiel du serveur localement ; et extraient fréquemment (PULL) les dernières mises à jour du référentiel du serveur
Les membres de l'équipe pousseront (PUSH) vos propres modifications vers le référentiel du serveur ; référentiel, et lorsque d'autres se synchroniseront avec le référentiel (PULL), ils obtiendront automatiquement les modifications
Le mode de travail centralisé de Git est très flexible
Vous pouvez complètement Lorsque vous êtes loin du réseau où se trouve le serveur Git , par exemple lorsque vous travaillez en déplacement/en voyage d'affaires, vous pouvez toujours utiliser la bibliothèque de codes comme d'habitude
Il vous suffit d'utiliser PULL et PUSH pour terminer la synchronisation avec le serveur et indiquer quand vous pouvez accéder au réseau où le serveur Git est situé
Git fournit la commande rebase, qui peut donner l'impression que vos modifications sont basées sur les dernières modifications de code
Git propose plus de modes de fonctionnement, bien plus que ce que Subversion peut égaler
Qu'est-ce que svn
SVN est l'abréviation de subversion. C'est un système de contrôle de version open source grâce à la gestion efficace du système de gestion de branche, en bref, il est utilisé par plusieurs personnes pour développer conjointement le. même projet pour parvenir à des ressources partagées et parvenir à une gestion de style de concentration finale.
SVN gère des données qui évoluent au fil du temps. Ces données sont placées dans un référentiel central. Cette archive ressemble beaucoup à un serveur de fichiers classique, mais elle mémorise chaque modification de fichier. De cette façon, vous pouvez restaurer le fichier vers une ancienne version ou parcourir l'historique des modifications du fichier. Subversion est un système à usage général qui peut être utilisé pour gérer tout type de fichier, y compris le code source d'un programme.
SVN est un système de contrôle de version centralisé.
Un système de contrôle de version centralisé dispose d'un seul serveur de gestion centralisé qui enregistre les révisions de tous les fichiers, et les personnes travaillant ensemble se connectent à ce serveur via le client pour extraire les derniers fichiers ou soumettre des mises à jour. Les fonctionnalités de
svn sont résumées comme suit :
Chaque référentiel a une URL unique (adresse officielle), et chaque utilisateur obtient le code et les données à partir de cette adresse
Obtenir les mises à jour du code ne peut être connecté qu'à ; ce référentiel unique et synchronisé pour obtenir les dernières données
Les soumissions doivent avoir une connexion réseau (référentiel non local
) ;La soumission nécessite une autorisation. S'il n'y a pas d'autorisation d'écriture, la soumission échouera
La soumission peut ne pas réussir à chaque fois ; Si quelqu'un d'autre soumet avant vous, le message "Les modifications sont basées sur une version obsolète, mettez d'abord à jour puis soumettez"... et ainsi de suite
La résolution des conflits est une compétition de vitesse de soumission : ceux qui sont rapides ; , soumettez-le d'abord, et tout ira bien ; ceux qui sont lents le soumettront en premier. Ceux qui, après s'être engagés, pourraient avoir des problèmes avec la résolution du conflit.
Avantages : Tout le monde peut voir dans une certaine mesure sur quoi travaillent les autres participants au projet. Les administrateurs peuvent également contrôler facilement les autorisations de chaque développeur.
Inconvénients : Point de défaillance unique sur le serveur central.
S'il est indisponible pendant une heure, personne ne pourra soumettre de mises à jour, de restaurations, de comparaisons, etc. pendant cette heure, et il sera impossible de travailler ensemble. Si le disque du serveur central tombe en panne et qu'aucune sauvegarde n'est effectuée ou que la sauvegarde n'est pas effectuée à temps, il existe un risque de perte de données. Le pire des cas est de perdre complètement tous les enregistrements de modifications historiques de l'ensemble du projet, à l'exception de certaines données instantanées extraites par le client, mais cela reste un problème car vous ne pouvez pas garantir que toutes les données ont été extraites.
En principe, svn ne se soucie que des différences spécifiques dans le contenu des fichiers. À chaque fois, il est enregistré quels fichiers ont été mis à jour et quelles lignes et contenus ont été mis à jour.
La différence entre le champ d'application de svn et de git
est différente.
Git convient aux développeurs impliqués dans des projets open source. En raison de leur haut niveau d’expertise, ils se soucient davantage de l’efficacité que de la facilité d’utilisation. SVN est différent, il convient aux équipes de développement d'entreprise ordinaires. C'est plus facile à utiliser.
Les occasions d'utilisation sont différentes.
Git convient au développement d'un seul projet avec plusieurs rôles de développement via Internet, et SVN convient au développement de plusieurs projets parallèles au sein de l'entreprise coordonnés par des chefs de projet.
Les stratégies de gestion des autorisations sont différentes.
Git n'a pas de contrôle strict de gestion des autorisations. Tant que vous disposez d'un compte, vous pouvez exporter, importer du code et même effectuer des opérations de restauration. SVN a une gestion stricte des autorisations et peut contrôler les autorisations pour un certain sous-répertoire par groupe ou individu. Faites la distinction entre les autorisations de lecture et d’écriture. Plus strictement, les opérations de restauration ne sont pas prises en charge. Assurez-vous que le code est toujours traçable.
Le champ d'utilisation des branches est différent.
Dans Git, vous ne pouvez créer une branche que sur l'intégralité de l'entrepôt, et une fois supprimé, il ne peut pas être restauré. Dans SVN, la branche peut cibler n'importe quel sous-répertoire, ce qui est essentiellement une opération de copie. Par conséquent, vous pouvez créer de nombreuses branches hiérarchiques, les supprimer lorsqu'elles ne sont pas nécessaires et simplement consulter l'ancienne version de SVN lorsque vous en aurez besoin à l'avenir.
Sur la base du troisième point, Git convient aux projets logiciels purs, généralement certains projets open source, comme le noyau Linux, busybox, etc. Au contraire, SVN est bon en gestion multi-projets.
Par exemple, vous pouvez stocker le bsp/document de conception/système de fichiers/application/script de compilation automatisée d'un projet de téléphonie mobile dans un entrepôt SVN, ou stocker les systèmes de fichiers de 5 projets de téléphonie mobile dans un SVN. Les référentiels n (nombre de projets)*m (nombre de composants) doivent être établis dans git. Dans SVN, seuls jusqu'à n ou m sont nécessaires.
Git utilise un identifiant de 128 bits comme numéro de version, et vous devez indiquer de quelle branche il s'agit lors de la vérification ; tandis que SVN utilise un numéro de série incrémentiel comme numéro de version unique au monde, ce qui est plus concis et facile à comprendre. . Bien que vous puissiez utiliser gittag pour créer des alias littéraux, après tout, cela ne concerne que les versions spéciales.
Traçabilité
Le processus de développement typique de git est le suivant : établir une branche, développer, soumettre au maître local et supprimer la branche. La conséquence est que les détails des modifications précédentes seront perdus.
Faites la même chose sous SVN sans perdre aucun détail.
Mise à jour partielle, restauration partielle.
Étant donné que SVN crée un dossier .svn dans chaque dossier pour la gestion, il peut facilement mettre en œuvre des mises à jour ou des restaurations partielles. Si vous souhaitez uniquement mettre à jour certaines parties, svn peut très bien le faire. Dans le même temps, si le code est mal écrit, une restauration partielle peut être facilement réalisée. Bien sûr, git peut également être restauré via des versions historiques, mais une restauration partielle n'est pas facile à réaliser.
Apprentissage recommandé : "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!