Es gibt eine Möglichkeit, ein Remote-Repository ohne Verwendung von Submodulen oder Teilbäumen einzufügen, auch wenn dieses Repository völlig unabhängig von Ihnen ist und gegensätzliche Verzeichnisse aufweist.
Fügen Sie zuerst dieses Repository als eine Ihrer Fernbedienungen in .git/config
hinzu. Nehmen wir zum Beispiel an, du möchtest Zaldors Gruff-Bibliothek von Github mitbringen. Diese Namen sind völlig fiktiv:
Jetzt können Sie git fetch gruff-upstream
machen, um alle Objekte zu erhalten. Jetzt können Sie die verfügbaren Zweige in den gruff
-Projekten sehen.
Die zwei gruff
-Zeilen sind gruff
's Zweige. Der origin/master
ist unser eigener Ursprung. Die Namen kollidieren: gruff
hat master
und wir haben auch master
. Das macht nichts: Wir können gruff/master
einen anderen lokalen Zweignamen geben.
Nun, wenn wir git checkout gruff-master
haben, werden alle unsere git-tracked Dateien verschwinden, ersetzt durch die gruff
Arbeitskopie:
Jetzt können wir diesen gruff-master
Zweig ein wenig verbessern. Zum Beispiel können wir alle seine Dateien in ein Unterverzeichnis verschieben, unerwünschte Dateien entfernen und so:
Als nächstes wechseln wir zurück zu unserem eigenen master
. Gruff-Dateien verschwinden und unsere Dateien sind zurück:
Jetzt können wir einige Dateien von gruff
in unser master
bringen:
Diese Dateien materialisieren sich in unserer Arbeitskopie und werden unserem Index hinzugefügt:
%Vor% wir können sie jetzt in unsere master
einfügen.
Wenn der Upstream gruff
neue Versionen der Dateien veröffentlicht, können wir zu unserem gruff-branch
wechseln und ziehen. Lösen Sie die neuen Änderungen gegen unsere Bereinigung und Festschreibung. Zurück zu unserem master
, können wir dieses neue Update aus unserem lokalen Zweig gruff-master
auswählen.
Ja, im Grunde verwendet man Git als verklärtes Patch-Tool. Das Material von gruff-master
ausgewählt in master
hat keine Vorfahren; Es sieht nur wie hinzugefügte Dateien aus. Es ist jedoch besser als nichts und in vielerlei Hinsicht weniger umständlich als Teilbäume oder Module.