Heim > Entwicklungswerkzeuge > Idiot > Was sind Git und SVN?

Was sind Git und SVN?

青灯夜游
Freigeben: 2021-11-30 14:09:44
Original
5905 Leute haben es durchsucht

Git ist ein verteiltes Open-Source-Versionskontrollsystem, mit dem die Versionsverwaltung von kleinen bis sehr großen Projekten effektiv und schnell durchgeführt werden kann. SVN ist ein zentralisiertes Open-Source-Versionskontrollsystem, das von mehreren Personen verwendet wird, um gemeinsam dasselbe Projekt zu entwickeln, gemeinsame Ressourcen zu realisieren und letztendlich eine zentrale Verwaltung zu erreichen.

Was sind Git und SVN?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Git-Version 2.30.0, Dell G3-Computer.

Was ist Git?

Git ist ein kostenloses, verteiltes Open-Source-Versionskontrollsystem für die agile und effiziente Bearbeitung jedes kleinen oder großen Projekts.

Git ist ein verteiltes Open-Source-Versionskontrollsystem, das effektiv und schnell verwendet werden kann Sie kümmern sich um die Versionsverwaltung von kleinen bis sehr großen Projekten. Git ist eine Open-Source-Versionskontrollsoftware, die von Linus Torvalds entwickelt wurde, um die Verwaltung der Linux-Kernel-Entwicklung zu unterstützen.

Der größte Unterschied zwischen verteilt und zentralisiert besteht darin, dass Entwickler lokal übermitteln können und jeder Entwickler durch Klonen (Git-Klon) ein vollständiges Git-Repository auf den lokalen Computer kopiert.

Git ist ein verteiltes Versionskontrollsystem

2 (1).png

Git weist die folgenden Eigenschaften auf:

  • Das Repository jedes Klons (Klons) in Git ist gleich. Sie können Ihr eigenes Repository aus einem Klon eines beliebigen Repositorys erstellen und Ihr Repository kann bei Bedarf auch als Quelle für andere verwendet werden.

  • Jeder Extraktionsvorgang von Git ist eigentlich eine vollständige Sicherung des Code-Repositorys.

  • Die Übermittlung erfolgt vollständig lokal, niemand sonst muss Ihnen die Genehmigung erteilen, Sie sind der Herr Ihres Repositorys und die Übermittlung wird immer erfolgreich sein.

  • Sogar Änderungen, die auf der alten Version basieren, können erfolgreich übermittelt werden, und durch die Übermittlung wird ein neuer Zweig basierend auf der alten Version erstellt.

  • Git-Übermittlungen werden nicht unterbrochen, bis Sie mit Ihrer Arbeit vollständig zufrieden sind oder andere zum PULL-Vorgang in Ihr Repository gelangen. Konflikte, die nicht automatisch gelöst werden können, werden angezeigt von Hand.

  • Konfliktlösung ist nicht mehr wie ein Einreichungswettbewerb wie SVN, sondern Zusammenführung und Konfliktlösung nur bei Bedarf.

  • Git kann auch einen zentralisierten Arbeitsmodus simulieren.

  • Das Git-Repository wird auf dem Server platziert.

  • Sie können das Git-Repository autorisieren: Wer kann das Repository erstellen, wer kann es in das Repository pushen, wer kann lesen (klonen) Sie das Repository?

  • Teammitglieder klonen zunächst das Repository des Servers und ziehen (PULL) häufig die neuesten Updates aus dem Repository des Servers.

  • Teammitglieder übertragen (PUSH) Ihre eigenen Änderungen Repository, und wenn andere mit dem Repository synchronisieren (PULL), erhalten sie automatisch die Änderungen. Der zentralisierte Arbeitsmodus von Git ist sehr flexibel B. bei der Arbeit unterwegs/auf einer Geschäftsreise, können Sie die Codebibliothek weiterhin wie gewohnt nutzen

  • Sie müssen nur PULL und PUSH verwenden, um die Synchronisierung mit dem Server abzuschließen und zu übermitteln, wann Sie auf das Netzwerk zugreifen können Der Git-Server befindet sich

  • Git stellt den Rebase-Befehl bereit, mit dem Ihre Änderungen so aussehen können, als ob sie auf den neuesten Codeänderungen basieren

  • Git bietet mehr Arbeitsmodi zur Auswahl, weit mehr, als Subversion mithalten kann

  • Was ist SVN?
  • SVN ist die Abkürzung für Subversion. Es handelt sich um ein Open-Source-Versionskontrollsystem, das kurz gesagt für die gemeinsame Entwicklung mehrerer Personen verwendet wird dasselbe Projekt, um gemeinsame Ressourcen zu erreichen und eine endgültige Konzentration im Stil zu erreichen.
SVN verwaltet Daten, die sich im Laufe der Zeit ändern. Diese Daten werden in einem zentralen Repository abgelegt. Dieses Archiv ähnelt einem gewöhnlichen Dateiserver, speichert jedoch jede Dateiänderung. Auf diese Weise können Sie die Datei auf eine ältere Version zurücksetzen oder den Änderungsverlauf der Datei durchsuchen. Subversion ist ein Allzwecksystem, das zur Verwaltung jeder Art von Datei, einschließlich Programmquellcode, verwendet werden kann.

SVN ist ein zentralisiertes Versionskontrollsystem.

Ein zentralisiertes Versionskontrollsystem verfügt über einen einzigen zentralen Verwaltungsserver, der Revisionen aller Dateien speichert, und zusammenarbeitende Personen stellen über den Client eine Verbindung zu diesem Server her, um die neuesten Dateien herauszunehmen oder Aktualisierungen einzureichen.


svns Funktionen sind wie folgt zusammengefasst:

Jedes Repository hat eine eindeutige URL (offizielle Adresse) und jeder Benutzer erhält Code und Daten von dieser Adresse;

1 (1).png

Code-Updates abrufen kann nur mit verbunden werden Dieses einzigartige Repository wird synchronisiert, um die neuesten Daten zu erhalten.

  • Übermittlungen müssen über eine Netzwerkverbindung verfügen (nicht lokales Repository).
  • Die Übermittlung erfordert eine Autorisierung. Wenn keine Schreibberechtigung vorliegt, schlägt die Übermittlung fehl.

  • Die Übermittlung ist möglicherweise nicht immer erfolgreich. Wenn jemand anderes vor Ihnen einreicht, wird die Meldung angezeigt: „Die Änderungen basieren auf einer veralteten Version, zuerst aktualisieren und dann einreichen“ ... und so weiter.

  • Konfliktlösung ist ein Wettbewerb der Einreichungsgeschwindigkeit: diejenigen, die schnell sind Geben Sie zuerst ein, und alles wird gut. Diejenigen, die langsam sind, werden es zuerst einreichen. Diejenigen, die nach dem Festschreiben möglicherweise Probleme mit der Konfliktlösung haben.

Vorteile: Jeder kann einigermaßen sehen, woran andere im Projekt arbeiten. Administratoren können auch die Berechtigungen jedes Entwicklers einfach steuern.

Nachteile: Single Point of Failure auf dem zentralen Server.

Wenn es eine Stunde lang nicht verfügbar ist, kann innerhalb dieser Stunde niemand Updates, Wiederherstellungen, Vergleiche usw. einreichen und es ist unmöglich, zusammenzuarbeiten. Wenn die Festplatte des zentralen Servers ausfällt und kein Backup erstellt wird oder das Backup nicht rechtzeitig genug erfolgt, besteht die Gefahr eines Datenverlusts. Im schlimmsten Fall gehen alle historischen Änderungsdatensätze des gesamten Projekts vollständig verloren, mit Ausnahme einiger vom Client extrahierter Snapshot-Daten. Dies stellt jedoch immer noch ein Problem dar, da Sie nicht garantieren können, dass alle Daten extrahiert wurden.

Im Prinzip kümmert sich SVN nur um die spezifischen Unterschiede im Dateiinhalt. Dabei wird jeweils protokolliert, welche Dateien aktualisiert wurden, sowie welche Zeilen und Inhalte aktualisiert wurden.

Der Unterschied zwischen dem Anwendungsbereich von SVN und Git

  • ist unterschiedlich.

    Git eignet sich für Entwickler, die an Open-Source-Projekten beteiligt sind. Aufgrund ihres hohen Fachwissens legen sie mehr Wert auf Effizienz als auf Benutzerfreundlichkeit. SVN ist anders, es eignet sich für normale Unternehmensentwicklungsteams. Es ist einfacher zu verwenden.

  • Die Einsatzanlässe sind unterschiedlich.

    Git eignet sich für die Entwicklung eines einzelnen Projekts mit mehreren Entwicklungsrollen über das Internet, und SVN eignet sich für die Entwicklung mehrerer paralleler Projekte innerhalb des Unternehmens, die von Projektmanagern koordiniert werden.

  • Berechtigungsverwaltungsstrategien sind unterschiedlich.

    Git verfügt nicht über eine strenge Berechtigungsverwaltungskontrolle. Solange Sie über ein Konto verfügen, können Sie Code exportieren, importieren und sogar Rollback-Vorgänge durchführen. SVN verfügt über eine strenge Berechtigungsverwaltung und kann Berechtigungen für ein bestimmtes Unterverzeichnis nach Gruppe oder Einzelperson steuern. Unterscheiden Sie zwischen Lese- und Schreibberechtigungen. Genauer gesagt werden Rollback-Vorgänge nicht unterstützt. Stellen Sie sicher, dass der Code jederzeit nachvollziehbar ist.

  • Der Nutzungsumfang von Filialen ist unterschiedlich.

    In Git können Sie nur das gesamte Lager verzweigen. Nach dem Löschen kann es nicht wiederhergestellt werden. In SVN kann die Verzweigung auf jedes Unterverzeichnis abzielen, was im Wesentlichen ein Kopiervorgang ist. Daher können Sie viele hierarchische Zweige erstellen, diese löschen, wenn sie nicht benötigt werden, und bei Bedarf einfach die alte SVN-Version ausprobieren.

  • Basierend auf dem dritten Punkt eignet sich Git für reine Softwareprojekte, typischerweise einige Open-Source-Projekte wie den Linux-Kernel, Busybox usw. Im Gegenteil, SVN ist gut im Multiprojektmanagement.

    Zum Beispiel können Sie das BSP/Designdokument/Dateisystem/Anwendung/automatisierte Kompilierungsskript eines Mobiltelefonprojekts in einem SVN-Warehouse speichern oder die Dateisysteme von 5 Mobiltelefonprojekten in einem SVN speichern. n (Anzahl der Projekte)*m (Anzahl der Komponenten) Repositorys müssen in Git eingerichtet werden. In SVN werden nur bis zu n oder m benötigt.

  • Git verwendet eine 128-Bit-ID als Versionsnummer, und Sie müssen beim Auschecken angeben, um welchen Zweig es sich handelt, während SVN eine inkrementelle Seriennummer als global eindeutige Versionsnummer verwendet, was prägnanter und einfacher zu verstehen ist . Obwohl Sie mit gittag einige wörtliche Aliase erstellen können, gilt dies schließlich nur für spezielle Versionen.

  • Rückverfolgbarkeit

    Der typische Entwicklungsprozess von Git ist: Einen Zweig einrichten, entwickeln, an den lokalen Master senden und den Zweig löschen. Dies hat zur Folge, dass frühere Änderungsdetails verloren gehen.

    Machen Sie dasselbe unter SVN, ohne dass Details verloren gehen.

  • Teilweise Aktualisierung, teilweise Wiederherstellung.

    Da SVN in jedem Ordner einen .svn-Ordner zur Verwaltung erstellt, können Teilaktualisierungen oder Wiederherstellungen problemlos implementiert werden. Wenn Sie nur bestimmte Teile aktualisieren möchten, kann svn dies sehr gut tun. Wenn der Code falsch geschrieben ist, kann gleichzeitig eine teilweise Wiederherstellung leicht erreicht werden. Natürlich kann Git auch durch historische Versionen wiederhergestellt werden, eine teilweise Wiederherstellung ist jedoch nicht einfach zu erreichen.

Empfohlenes Lernen: „Git Tutorial

Das obige ist der detaillierte Inhalt vonWas sind Git und SVN?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage