Was ist der Unterschied zwischen SVN und Git?
Der Unterschied zwischen Git und SVN
GIT ist nicht nur ein Versionskontrollsystem, es ist auch ein Content-Management-System ( CMS), Arbeitsmanagementsystem usw. Wenn Sie über Erfahrung in der Verwendung von SVN verfügen, müssen Sie einige mentale Änderungen vornehmen, um sich an einige der von GIT bereitgestellten Konzepte und Funktionen anzupassen.
1. GIT ist verteilt, SVN ist nicht:
Dies ist der Hauptunterschied zwischen GIT und anderen nicht verteilten Versionskontrollsystemen wie SVN, CVS usw. Wenn Sie dieses Konzept verstehen können, haben Sie die Hälfte geschafft. Ein kleiner Haftungsausschluss muss gemacht werden: GIT ist derzeit nicht das erste oder einzige verteilte Versionskontrollsystem. Es gibt auch einige Systeme wie Bitkeeper, Mercurial usw., die ebenfalls im verteilten Modus laufen. Aber GIT leistet in dieser Hinsicht bessere Arbeit und verfügt über leistungsfähigere Funktionen.
GIT verfügt wie SVN über ein eigenes zentrales Repository oder einen eigenen Server. GIT bevorzugt jedoch die Verwendung im verteilten Modus, d. h. jeder Entwickler klont sein eigenes Repository auf seinem Computer, nachdem er den Code vom zentralen Repository/Server ausgecheckt hat. Man kann sagen, dass Sie, wenn Sie an einem Ort ohne Internetzugang festsitzen, z. B. in einem Flugzeug, in einem Keller, in einem Aufzug usw., immer noch Dateien übermitteln, historische Versionsdatensätze anzeigen, Projektzweige erstellen usw. können. Manchen scheint dies nicht viel zu nützen, aber wenn Sie plötzlich auf eine Umgebung ohne Netzwerk stoßen, wird dies Ihr großes Problem lösen.
Ebenso ist dieser verteilte Betriebsmodus auch ein großes Geschenk für die Entwicklung der Open-Source-Software-Community. Sie müssen nicht mehr wie bisher Patch-Pakete erstellen und per E-Mail versenden, sondern nur noch A Zweig, der eine Push-Anfrage an das Projektteam sendet. Dadurch bleibt Ihr Code aktuell und geht während der Übertragung nicht verloren. GitHub.com ist ein hervorragender Fall.
Einige Gerüchte haben die Runde gemacht, dass zukünftige Versionen von Subversion ebenfalls auf dem verteilten Modell basieren werden. Aber zumindest ist es noch nicht sichtbar.
2.GIT speichert Inhalte als Metadaten, während SVN Inhalte als Dateien speichert:
Alle Ressourcenkontrollsysteme verbergen die Metainformationen von Dateien in einem Dateiordner wie .svn, .cvs usw. Wenn Sie die Größe des .git-Verzeichnisses mit der von .svn vergleichen, werden Sie feststellen, dass sie sehr unterschiedlich sind. Da das .git-Verzeichnis eine geklonte Version des Repositorys auf Ihrem Computer ist, enthält es alles im zentralen Repository, z. B. Tags, Zweige, Versionsdatensätze usw.
3. GIT-Zweige unterscheiden sich von SVN-Zweigen:
Der Zweig ist überhaupt nichts Besonderes in SVN, er ist nur ein weiteres Verzeichnis im Repository. Wenn Sie wissen möchten, ob ein Zweig zusammengeführt wurde, müssen Sie manuell einen Befehl wie svn propget svn:mergeinfo ausführen, um zu bestätigen, ob der Code zusammengeführt wurde. Vielen Dank an Klassenkamerad Ben für den Hinweis auf diese Funktion. Daher kommt es häufig vor, dass einige Zweige übersehen werden.
Die Arbeit mit GIT-Branches ist jedoch recht einfach und macht Spaß. Sie können schnell zwischen mehreren Zweigen desselben Arbeitsverzeichnisses wechseln. Sie können nicht zusammengeführte Zweige leicht finden und diese Dateien schnell und einfach zusammenführen.
4. GIT hat keine globale Versionsnummer, während SVN Folgendes hat:
Bisher ist dies die größte Funktion, die GIT im Vergleich zu SVN fehlt. Sie wissen auch, dass die SVN-Versionsnummer tatsächlich eine Momentaufnahme des Quellcodes zu jedem entsprechenden Zeitpunkt ist. Ich denke, es ist der größte Durchbruch in der Entwicklung von CVS zu SVN. Da GIT und SVN konzeptionell unterschiedlich sind, weiß ich nicht, welche Funktionen in GIT ihnen entsprechen. Wenn Sie Hinweise haben, teilen Sie diese bitte in den Kommentaren mit allen.
Update: Einige Leser haben darauf hingewiesen, dass wir den SHA-1 von GIT verwenden können, um einen Code-Snapshot eindeutig zu identifizieren. Dies ersetzt die leicht lesbaren numerischen Versionsnummern in SVN nicht vollständig. Der Zweck sollte jedoch derselbe sein.
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.
Verwandte Empfehlungen: „Git Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen SVN und Git?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!