Beim Durchblättern des SubModule-Tutorials habe ich aus dem Boto-Projekt ein Submodul erstellt . Dann stellte ich fest, dass ich tatsächlich nur eine Teilmenge dieses Projekts benötige - insbesondere den Boto- Ordner.
Ich möchte mein Submodul so ändern, dass es auf diesen Ordner verweist. Wenn ich in .gitmodules schaue, sehe ich
[submodule "backup/src/boto"]
path = backup/src/boto
url = https://github.com/boto/boto.git
Welche URL sollte ich anstelle von https://github.com/boto/boto.git verwenden ? Soll ich nach dem Ändern der URL den Boto-Ordner lokal löschen und erneut abrufen?
git
git-submodules
ripper234
quelle
quelle
git subtree
Antworten:
Ich fürchte, die URL für Submodule zeigt immer nur auf das Repository - Sie können nicht angeben, dass Sie nur einen Unterordner eines Repositorys möchten, genauso wie git "schmale Klone" im Allgemeinen nicht unterstützt.
Wenn Sie nicht damit leben können, das gesamte Repository als Submodul zu haben, können Sie jederzeit ein neues Repository erstellen, das von boto geklont wurde, und dann einen Cron-Job einrichten, um:
git fetch
dieses Repository in ein Verzeichnisgit filter-branch
diese Option, um einen Zweig zu aktualisieren, in dem sich das Unterverzeichnis auf der obersten Ebene befindet.quelle
Sie können nicht nur einen Teil eines Repositorys klonen. Dies liegt daran, dass git das Repository als ganzes Objekt behandelt: Wenn Sie es erhalten, erhalten Sie alles .
Die Lösung hier wäre also, das Submodul in einem anderen Verzeichnis abzurufen und dann einen Symlink zu verwenden, um Ihr Ziel zu erreichen.
quelle
ln -s
wie unter Linux verwenden kann.)Sie möchten einen Zweig im Submodul erstellen, den Ordner nach oben verschieben und das löschen, was Sie nicht benötigen. Sie können dann stattdessen diesen Zweig verwalten. Wenn Sie Ihre Änderungen vorantreiben möchten, sollten Sie in der Lage sein, zuerst die Zusammenführung zurückzusetzen. Git wird wissen, dass Sie die Dateien verschoben und die Zusammenführung erfolgreich durchgeführt haben.
Hoffe das hilft.
quelle