2016-08-08 9 views
0

Ich habe die folgende Verzeichnisstruktur:Git: Wie ein Verzeichnis von wenigen Verzeichnissen Punkt

  • A -> B -> C
  • A -> X -> C

A ist das Repository. X und B sind Projekte (ich habe tatsächlich 5, nicht 2). C ist ein Verzeichnis mit viel Code. Ich möchte C nicht in allen Projekten platzieren und vor jedem Commit kopieren. Ich möchte in der Lage sein, alle Cs an die gleiche Stelle zu verbinden. C muss unter jedem von ihnen sein, da es sich um separate Projekte handelt, die separat gesendet werden.

Gibt es eine Möglichkeit, nur ein C in GIT zu haben, aber nur wenige in der Verzeichnisstruktur? Vielleicht symbolische Verbindung?

Antwort

1

Verwenden Sie submodules, mit denen Sie ein Git-Repository in andere verknüpfen können.

Ich glaube, dass es möglich ist, ein Repository mehrmals als Submodul in derselben Top-Level-Repository zu verwenden, obwohl ich es selbst nicht versucht habe.

Submodule sind in dieser Situation den Symlinks überlegen; Obwohl Git erkennt, dass Dateien dupliziert werden und nur eine Kopie von jedem speichert (auch wenn Sie keine Symlinks verwenden), und obwohl der Symlink Änderungen an alle Repositorys propagiert, würde git Sie immer noch einzeln verpflichten müssen Änderungen in jeder der symbolisierten Dateien.

+0

Danke, das scheint die Antwort zu sein. –