Eines der Dinge, die mir an der Einrichtung von Subversion gefallen, ist, dass ich ein einziges Haupt-Repository mit mehreren Projekten haben kann. Wenn ich an einem Projekt arbeiten möchte, kann ich genau dieses Projekt überprüfen. So was
\main
\ProductA
\ProductB
\Shared
dann
svn checkout http://.../main/ProductA
Als neuer Benutzer von git möchte ich einige bewährte Methoden in diesem Bereich kennenlernen, bevor ich mich auf einen bestimmten Workflow einlasse. Nach dem, was ich bisher gelesen habe, speichert git alles in einem einzigen .git-Ordner im Stammverzeichnis des Projektbaums. Ich könnte also eines von zwei Dingen tun.
- Richten Sie für jedes Produkt ein eigenes Projekt ein.
- Richten Sie ein einzelnes umfangreiches Projekt ein und speichern Sie Produkte in Unterordnern.
Es gibt Abhängigkeiten zwischen den Produkten, so dass das einzelne massive Projekt angemessen erscheint. Wir werden einen Server verwenden, auf dem alle Entwickler ihren Code teilen können. Ich habe dies bereits über SSH & HTTP und den Teil, den ich liebe. Die Repositorys in SVN haben jedoch bereits eine Größe von vielen GB. Daher scheint es eine schlechte Idee zu sein, das gesamte Repository auf jedem Computer zu verschieben - insbesondere, da uns eine übermäßige Netzwerkbandbreite in Rechnung gestellt wird.
Ich würde mir vorstellen, dass die Linux-Kernel-Projekt-Repositorys gleich groß sind, also muss es einen richtigen Weg geben, dies mit Git zu handhaben, aber ich habe es nur noch nicht herausgefunden.
Gibt es Richtlinien oder Best Practices für die Arbeit mit sehr großen Repositorys für mehrere Projekte?
git diff
undgit status
beide lernten, Submodulzustände zu berücksichtigen, selbst wenn sie vom Hauptprojekt ausgeführt wurden. Sie können die Modifikation des Submoduls einfach nicht verpassen.Mit GitSlave können Sie mehrere unabhängige Repos als eine verwalten. Jedes Repo kann mit regulären Git-Befehlen bearbeitet werden, während Sie mit Gitslave zusätzlich einen Befehl über alle Repos ausführen können.
Repo-per-Project bietet Vorteile bei der Komponentisierung und vereinfachte Builds mit Tools wie Maven. Repo-per-Project bietet zusätzlichen Schutz, indem es den Umfang der Änderungen durch den Entwickler einschränkt - in Bezug auf fehlerhafte Commits von Müll.
quelle