Hallo, Entdecker! An dieser Seite wird aktiv gearbeitet, oder sie wird noch übersetzt. Die neuesten und genauesten Informationen finden Sie in unserer englischsprachigen Dokumentation.
Artikelversion: Enterprise Server 2.15

Diese Version von GitHub Enterprise wird eingestellt am Diese Version von GitHub Enterprise wurde eingestellt am 2019-10-16. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

Unterschiede zwischen Subversion und Git

SVN-Repositorys (Subversion) ähneln Git-Repositorys. In Bezug auf die Architektur Ihrer Projekte bestehen jedoch mehrere Unterschiede.

Verzeichnisstruktur

Jede Referenz oder gekennzeichnete Snapshot eines Commits in einem Projekt ist in bestimmten Unterverzeichnissen organisiert, beispielsweise trunk, branches und tags. Beispielsweise kann ein SVN-Projekt mit zwei in Entwicklung befindlichen Features wie folgt aussehen:

  sample_project/trunk/README.md
  sample_project/trunk/lib/widget.rb
  sample_project/branches/new_feature/README.md
  sample_project/branches/new_feature/lib/widget.rb
  sample_project/branches/another_new_feature/README.md
  sample_project/branches/another_new_feature/lib/widget.rb

Ein SVN-Workflow sieht wie folgt aus:

Git-Projekte werden zudem in einem einzelnen Verzeichnis gespeichert. Git verbirgt jedoch die Details seiner Referenzen, indem sie in einem speziellen .git-Verzeichnis gespeichert werden. Beispielsweise kann ein Git-Projekt mit zwei in Entwicklung befindlichen Features wie folgt aussehen:

  sample_project/.git
  sample_project/README.md
  sample_project/lib/widget.rb

Ein Git-Workflow sieht wie folgt aus:

Im Gegensatz zu SVN bleibt die Verzeichnisstruktur mit Git identisch. Basierend auf Ihrem Branch ändern sich jedoch die Dateiinhalte.

Subprojekte einbeziehen

Ein Subprojekt ist ein Projekt, das außerhalb Ihres Hauptprojekts entwickelt und verwaltet wird. In der Regel importieren Sie ein Subprojekt, um Ihrem Projekte einige Funktionen hinzuzufügen, ohne den Code selbst verwalten zu müssen. Sobald das Subprojekt aktualisiert wird, können Sie es mit Ihrem Projekt synchronisieren, um sicherzustellen, dass alles aktuell ist.

In SVN wird ein Subprojekt als SVN-extern bezeichnet. In Git wird es als ein Git-Submodul bezeichnet. Obwohl sich beide konzeptionell ähneln, werden Git-Submodule nicht automatisch auf dem neuesten Stand gehalten. Sie müssen explizit darum bitten, dass eine neue Version in Ihr Projekt eingelesen wird.

In den folgenden externen Ressourcen werden die Unterschiede genauer erläutert:

Verlauf beibehalten

SVN geht davon aus, dass sich der Verlauf eines Projekts niemals ändert. Mithilfe von Tools wie git rebase können Sie mit Git vorherige Commits und Änderungen ändern.

GitHub unterstützt Subversion-Clients, die ggf. zu einigen unerwarteten Ergebnissen führen, falls Sie Git und SVN im selben Projekt verwenden. Falls Sie den Commit-Verlauf von Git geändert haben, verbleiben genau die gleichen Commits immer im Verlauf von SVN. Falls Sie versehentlich einige sensible Daten committet haben, finden Sie hier einen Artikel, der Sie dabei unterstützt, diese aus dem Git-Verlauf zu entfernen.

Weiterführende Informationen

Menschliche Unterstützung einholen

Sie können das Gesuchte nicht finden?

Kontakt