2017-04-19 1 views
0

Ich habe eine bestimmte Situation, und ich habe nicht die Antwort auf den Stack gefunden, die es entspricht.
Ich habe eine root_project, die Basis-App-Verzeichnis ist, synchronisiert mit dem Remote-Repo.Wie man ein Git Submodul von anderen Repo hinzufügen und es mit lokalen Ordner zusammenführen

Jetzt habe ich einen Ordner mit dem Namen oscar. Ich habe vorher gezippt oscar heruntergeladen und kopiert es in meine root_project, nachdem ich es in Orten angepasst habe, die ich brauchte.
Danach habe ich festgestellt, dass ich in Schwierigkeiten komme, wenn ich Updates von remote oscar bekommen muss, sobald diese erfunden sind.

Die Grundidee ist es, git submodule zu verwenden, aber wirklich kann nicht herausfinden, wie man es an meine Bedürfnisse anpassen, da ich nicht mein Projekt abstürzen und auf Experimentieren repo.

auch ein bestimmte Teil ist, dass ich nur src/oscar von oscar Repo muß, das ist eigentlich in meinem root_project und macht es möglich, mit meinen Änderungen in der lokalen oscar Ordnern zu verschmelzen, ohne die Dinge zu verlieren ich bereits vor Ort gemacht habe.

ich Hilfe und Anregungen zu schätzen wissen würde, wie man richtig git submodule unter den gegenwärtigen Umständen zu verwenden, auch wenn möglich wollen die Schritte siehe i

Antwort

1

auf das Erreichen gewünschten Ergebnisse tun müssen, [...], wie ich don‘ Ich möchte mein Projekt abbrechen und experimentieren.

Zunächst einmal sollten Sie keine Angst haben, Dinge in Ihrem lokalen Repository zu versuchen. Solange du auf deiner lokalen Kopie bleibst und nicht veröffentliche experimentelle Änderungen veröffentlichst, kannst du immer nur die ganze Sache löschen und sie wieder von deiner Fernbedienung klonen. Es ist eine sehr gute Art, Dinge zu lernen, wenn man Dinge einfach ausprobiert, besonders wenn man alles aufbricht. Zögern Sie nicht, dies zu tun!

Um Ihre Frage zu beantworten: Ich nehme an, oscar existiert als Remote-Repository. Git-Submodule sind in der Tat eine gute Möglichkeit, ein Subrepository zu verwalten, das Sie gelegentlich aktualisieren müssen. Sie finden eine gute Dokumentation zur Verwendung von Submodulen here. Es wird einfacher sein, wenn Sie oscar direkt von der Remote über git submodule add klonen, anstatt zuerst eine Zip-Datei herunterzuladen und zu extrahieren. Dieses neu geklonte Submodul enthält natürlich nicht Ihre lokalen Änderungen an oscar, aber Sie können sie einfach importieren, indem Sie die Schritte described here befolgen.

auch ein bestimmte Teil ist, dass ich nur src/oscar von oscar Repo müssen, das ist eigentlich in meinem root_project und es möglich zu machen, mit meinen Änderungen in der lokalen oscar-Ordner zu verschmelzen, ohne die Dinge zu verlieren ich habe schon lokal gemacht.

Ich verstehe diesen Teil nicht. Möchten Sie nur einen Unterordner von oscar als Submodul hinzufügen?

EDIT: So wollen Sie Ihr Submodul nur einen Unterordner des oscar Repository enthalten. Sie können dies tun, nachdem das gesamte Repository klonen (via git submodule add) mit

git filter-branch --prune-empty --subdirectory-filter FOLDER-NAME BRANCH-NAME 

Der Prozess here beschrieben wird, obwohl nur Punkt 5 für Sie von Interesse ist.Beachten Sie, dass Sie dies in Ihrem Submodul tun müssen, d. H. Sie müssen cd in Ihrem Submodul-Ordner.

+0

Thx für Vorschlag, ja, ich möchte nur den '' src/oscar''-Ordner, weil der Oscar Repo auch Sandbox und andere Sachen enthält –

+0

Wie Sie hier https://github.com/django-oscar/django sehen können -oscar Der Oscar Git Repo liefert die Sandbox und andere Dinge, mit denen ich nicht synchronisiert werden muss. Ich brauche src/oscar nur mit meinem gleichen Ordner in '' root_project'' verschmolzen werden. Ist es möglich, das so zu tun, wie Sie es schon erwähnt haben? –

+0

Siehe meine Bearbeitung für Details zum Extrahieren eines Unterordners aus dem geklonten Submodul. – kowsky

Verwandte Themen