2010-11-23 5 views
5

Ich habe ein Git-Repository mit viel Geschichte. Ich möchte dies anderen zugänglich machen, aber eines der Verzeichnisse enthält proprietären Code, der nicht verteilt werden kann. Gibt es eine Möglichkeit, einen Klon des Repository (mit Verlauf) zu erstellen, der dieses Verzeichnis ausschließt?Klon des Git-Repository ohne Unterverzeichnis

Bonus: Ich würde auch gerne in der Lage sein, Änderungen an dem 'öffentlichen' Code, der im alten, Haupt-Repository in den Klon gemacht wurde, zusammenzuführen.

Antwort

1

Sie können das nicht tun, wenn Sie nicht bereit sind, jeden Commit-Hash neu zu schreiben. Wenn Sie sich dazu entschließen, den Verlauf des Repositorys neu zu schreiben, um dieses Verzeichnis auszuschließen, müssen Sie sich mit jedem koordinieren, der ein Mitwirkender oder ein Konsument des Repositorys ist.

Sie müssen filter-branch den Baum anpassen. Das Skript muss zunächst ein Repository erstellen, das ein Submodul im Repository ist. Es muss sich bei jeder Änderung an dieses innere Repository binden und die Submodulreferenz im übergeordneten Objekt anpassen, was auch auf dieser Ebene gilt.

Sie können jetzt das Repo veröffentlichen und niemand wird in der Lage sein, eine git Submodul Operation zu tun, aber das ist was Sie wollen.