Notez que cela ferait superproject/path/to // un dépôt Git imbriqué, dont SHA1 serait toujours enregistré par le projet parent.
Pour conserver le même état, vous pouvez copier superproject/.git/modules/<module>
et le renommer en superproject/path/to/<module>
, puis renommer <module>/<module>
en <module>/.git
.
Ensuite, vous pouvez utiliser le git submodule deinit
pour supprimer le sous-module:
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
Je veux toujours être un sous-module de superprojec
Ensuite, son dossier .git
serait superproject/.git/modules/<module>
submodule absorbgitdirs
ne laisse pas le choix:
Si un répertoire git d'un sous-module est à l'intérieur du sous-module, déplacez le répertoire git du sous-module dans ses projets colossaux chemin $GIT_DIR/modules
puis connectez le répertoire git et son répertoire de travail par définir le core.worktree
et ajouter un fichier .git
pointant vers le répertoire git intégré dans le répertoire git de superprojets.
je ne vois pas dans git config
toute configuration qui pourrait se déplacer $GIT_DI R/modules
.
absorbgitdirs
a été introduit dans commit f6f8586 pour Git 2,12 (4ème trimestre 2016)
Its tests shows il prévoit utiliser GIT_DIR/modules
.
Plus ancien Git (before Git 1.7.8, Oct. 2011) avait un .git
directement dans le dossier sous-module.
Copie possible ou liée à: https: //stackoverflow.com/questions/1260748/how-do-i-remove-a-submodule – awiebe