Beachten Sie, dass dies superproject/path/to // zu einem verschachtelten Git Repo machen würde, dessen SHA1 immer noch vom übergeordneten Projekt aufgezeichnet würde.
Um den exakt gleichen Zustand zu halten, können Sie superproject/.git/modules/<module>
kopieren und umbenennen, um superproject/path/to/<module>
und benennen <module>/<module>
-<module>/.git
.
Dann können Sie die git submodule deinit
verwenden das Submodul zu entfernen:
mv asubmodule asubmodule_tmp
git submodule deinit -f -- a/submodule
rm -rf .git/modules/a/submodule
# if you want to leave it in your working tree
git rm --cached asubmodule
mv asubmodule_tmp asubmodule
Ich möchte noch ein Submodul von superprojec
Dann seine .git
Ordner in superproject/.git/modules/<module>
wäre sein
submodule absorbgitdirs
hinterlässt keine Wahl:
Wenn ein Git-Verzeichnis eines Submoduls innerhalb des Submodul ist, das git-Verzeichnis des Submodul in seine superprojects $GIT_DIR/modules
Pfade bewegen und dann das git Verzeichnis und dessen Arbeitsverzeichnis verbinden, indem Setzen Sie die core.worktree
und fügen Sie eine .git
Datei hinzu, die auf das git-Verzeichnis verweist, das in das superprojects-git-Verzeichnis eingebettet ist.
Ich sehe keine Konfiguration in git config
die $GIT_DI R/modules
bewegen könnten.
absorbgitdirs
wurde in commit f6f8586 für Git 2,12 (Q4 2016) eingeführt
Its tests shows es erwartet GIT_DIR/modules
zu verwenden.
Ältere Git (before Git 1.7.8, Oktober 2011) hatte eine .git
direkt in den Submodul-Ordner.
Mögliche Duplikat oder bezogen auf: https: //stackoverflow.com/questions/1260748/how-do-i-remove-a-submodule – awiebe