Verschachteln von Git-Repositories; holen und zusammenführen

8

Ich habe also zwei Git Repos. Das erste ist unser Framework (denke db Abstraktion, Funktionen) und dann ein weiteres Git Repo für unser neues Projekt.

Ich möchte das Framework-Git-Repo in das Projekt-Git aufnehmen, und laut GitHub-Hilfe sollte das funktionieren:

%Vor%

Das Problem ist, wenn ich die Zusammenführung mache, bringt es alle Dateien aus dem Framework und speichert sie einfach im Projektstamm ab. Stattdessen können wir Framework-Dateien in ein Child-Verzeichnis wie /project/framework/ ?

einfügen lassen     
Justin 26.04.2012, 00:14
quelle

1 Antwort

20

Vielleicht möchten Sie Git Submodul unterstützen. Mit einem Submodul können Sie ein Git-Repository in ein anderes Git-Repository einbetten. Es gibt alternative Lösungen für diese Art von Dingen, aber ich habe sie nicht selbst benutzt.

Ein Beispiel könnte so aussehen:

%Vor%

Wenn Sie ein Repository mit Submodulen klonen, müssen Sie die Option --recursive verwenden:

%Vor%

Alternativ können Sie regelmäßig klonen und dann ausführen:

%Vor%

Lesen Sie das verknüpfte Dokument (und git submodule --help ) für weitere Informationen.

Wenn Änderungen am Submodul vorgenommen werden, bringen Sie diese wie folgt ein:

%Vor%

Der letzte Schritt ist notwendig, weil git eine Aufzeichnung des spezifischen Commits speichert, das mit einem gegebenen Submodul verbunden ist (so dass, wenn jemand den Eltern klont, sie diese Version des Submoduls erhalten und nicht ihre aktuellste Revision , die unterbrechende Änderungen erfahren haben könnten, die verhindern würden, dass sie wie beabsichtigt mit dem übergeordneten Repository funktioniert). Wenn Sie also das Submodul aktualisieren, müssen Sie das neue Commit im übergeordneten Element aufzeichnen.

Wenn Sie Änderungen im Submodul framework vornehmen, würden Sie wieder git push wie bei jedem anderen Repository verwenden. Sie müssten dann die neue Revision im übergeordneten Modul festschreiben.

    
larsks 26.04.2012, 00:15
quelle