Heim > Artikel > Entwicklungswerkzeuge > Sind die Implementierungsprinzipien von Git und SVN gleich?
Die Implementierungsprinzipien von Git und SVN sind unterschiedlich; Git ist ein verteiltes Versionskontrollsystem, SVN ist es nicht. Dies ist der Hauptunterschied zwischen Git und SVN, nicht verteilten Versionskontrollsystemen svn wird im Dateimodus gespeichert.
Die Betriebsumgebung dieses Artikels: Windows 10-System, Git-Version 2.30.0, Dell G3-Computer.
Sind die Implementierungsprinzipien von Git und SVN gleich?
Git ist ein verteiltes Open-Source-Versionskontrollsystem, mit dem jedes kleine oder große Projekt agil und effizient abgewickelt werden kann.
Git ist eine Open-Source-Versionskontrollsoftware, die von Linus Torvalds entwickelt wurde, um die Verwaltung der Linux-Kernel-Entwicklung zu unterstützen.
Git unterscheidet sich von häufig verwendeten Versionskontrolltools wie CVS, Subversion usw. Es verwendet eine verteilte Versionsbibliothek und erfordert keine serverseitige Softwareunterstützung.
1. Der Unterschied zwischen Git und SVN
GIT ist nicht nur ein Versionskontrollsystem, sondern auch ein Content Management System (CMS), Arbeitsmanagementsystem usw.
Wenn Sie eine Person mit Erfahrung in der Verwendung von SVN sind, müssen Sie bestimmte ideologische Änderungen vornehmen, um sich an einige von GIT bereitgestellte Konzepte und Funktionen anzupassen.
Die Unterschiede zwischen Git und SVN:
1. GIT ist verteilt, SVN nicht: Dies ist der Hauptunterschied zwischen GIT und anderen nicht verteilten Versionskontrollsystemen wie SVN, CVS usw.
2. GIT speichert Inhalte als Metadaten, während SVN Inhalte als Dateien speichert: Alle Ressourcenkontrollsysteme verbergen die Metainformationen von Dateien in einem Ordner wie .svn, .cvs usw.
3. GIT-Zweige unterscheiden sich von SVN-Zweigen: Zweige sind in SVN überhaupt nichts Besonderes, sie sind nur ein weiteres Verzeichnis im Repository.
4. GIT hat keine globale Versionsnummer, SVN jedoch schon: Dies ist bisher das größte Feature, das GIT im Vergleich zu SVN fehlt.
5. Die Inhaltsintegrität von GIT ist besser als die von SVN: Der Inhaltsspeicher von GIT verwendet den SHA-1-Hash-Algorithmus. Dies stellt die Integrität des Codeinhalts sicher und reduziert Unterbrechungen des Repositorys bei Festplattenausfällen und Netzwerkproblemen.
2. Git-Prinzipien: Git-Arbeitsbereich, Staging-Bereich und Repository
Grundlegende Konzepte
Lassen Sie uns zunächst die Konzepte von Git-Arbeitsbereich, Staging-Bereich und Repository verstehen.
Arbeitsbereich: Das ist Ihr Verzeichnis, das auf der zu sehen ist Computer.
Temporärer Speicherbereich: auf Englisch Bühne oder Index genannt. Es wird im Allgemeinen in der Indexdatei (.git/index) im „.git-Verzeichnis“ gespeichert, daher nennen wir den temporären Speicherbereich manchmal den Index (Index).
Repository: Es gibt ein verstecktes Verzeichnis .git im Arbeitsbereich. Dies ist nicht der Arbeitsbereich, sondern das Git-Repository.
Die folgende Abbildung zeigt die Beziehung zwischen dem Arbeitsbereich, dem Staging-Bereich im Repository und dem Repository:
Die linke Seite der Abbildung ist der Arbeitsbereich und die rechte Seite ist das Repository. Der mit „Index“ gekennzeichnete Bereich im Repository ist der Staging-Bereich (Stufe, Index), und der mit „Master“ gekennzeichnete Bereich ist der durch den Master-Zweig dargestellte Verzeichnisbaum.
Auf dem Bild können wir sehen, dass „HEAD“ tatsächlich ein „Cursor“ ist, der auf den Hauptzweig zeigt. Daher kann HEAD in dem in der Abbildung gezeigten Befehl durch „master“ ersetzt werden.
Der durch Objekte im Bild identifizierte Bereich ist die Objektbibliothek von Git, die sich tatsächlich im Verzeichnis „.git/objects“ befindet und verschiedene erstellte Objekte und Inhalte enthält.
Wenn der Befehl „git add“ für eine im Arbeitsbereich geänderte (oder hinzugefügte) Datei ausgeführt wird, wird der Verzeichnisbaum im temporären Speicherbereich aktualisiert und gleichzeitig der Inhalt der geänderten (oder hinzugefügten) Datei Der Arbeitsbereich wird in ein neues Objekt in die Objektbibliothek geschrieben und die ID des Objekts wird im Dateiindex des temporären Speicherbereichs aufgezeichnet.
Beim Ausführen einer Festschreibungsoperation (Git Commit) wird der Verzeichnisbaum im temporären Speicherbereich in die Versionsbibliothek (Objektbibliothek) geschrieben und der Hauptzweig wird entsprechend aktualisiert. Das heißt, der Verzeichnisbaum, auf den der Master zeigt, ist der Verzeichnisbaum des temporären Speicherbereichs zum Zeitpunkt der Übermittlung.
Wenn der Befehl „git reset HEAD“ ausgeführt wird, wird der Verzeichnisbaum im Staging-Bereich neu geschrieben und durch den Verzeichnisbaum ersetzt, auf den der Master-Zweig verweist, der Arbeitsbereich wird jedoch nicht beeinträchtigt.
Wenn der Befehl „git rm --cached
Wenn der Befehl „git checkout“ oder „git checkout –
Wenn der Befehl „git checkout HEAD“ oder „git checkout HEAD
Empfohlenes Lernen: „Git Tutorial“
Das obige ist der detaillierte Inhalt vonSind die Implementierungsprinzipien von Git und SVN gleich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!