J'essayais de supprimer un sous-module du projet
Essayé rm -rf .git/modules/submodulePath
Après cela, j'ai le problème
fatal: Ce n'est pas un dépôt git
Ces deux fichiers contiennent le chemin de sous-module absolu:
{submodule}/.git
.git/modules/{submodule}/config
Ainsi, si vous avez déplacé le référentiel, le chemin absolu dans ces deux fichiers n'est pas valide et provoque l'erreur «not a git repository». Il suffit de réparer ces fichiers manuellement.
Mettre à jour:
1.) Supprimez la section correspondante du fichier .gitmodules. Vous pouvez utiliser la commande ci-dessous:
git config -f .gitmodules --remove-section "submodule.submodule_name"
2.) Mettre en scène les changements de .gitmodules
git add .gitmodules
3.) Supprimez la section correspondante de .git/config. Vous pouvez utiliser la commande ci-dessous:
git submodule deinit -f "submodule_name"
4.) Retirez le gitlink (pas de barre oblique):
git rm --cached path_to_submodule
5.) Nettoyez le .git/modules:
rm -rf .git/modules/path_to_submodule
6.) S'engager:
git commit -m "Removed submodule <name>"
7.) Supprimer les fichiers de sous-module maintenant non suivis
rm -rf path_to_submodule
J'ai rencontré cette erreur après avoir déplacé un référentiel Git dans un autre dossier. Quand j'ai regardé dedans:
{submodule}/.git
J'ai vu une seule ligne avec un chemin absolu, par exemple:
gitdir: /Users/ajx/Documents/repo/.git/modules/{submodule}
J'ai changé cela en un chemin relatif, par exemple:
gitdir: ../../.git/modules/{submodule}
Je ne sais pas pourquoi Git décoderait les chemins absolus ...
Vous pouvez simplement mettre à jour le fichier .git
nano {mon sous-module} /. git
avec le bon gitdir.
Parce que je pense que vous changez le chemin de votre dossier
J'ai rencontré ce problème et je n'avais pas de répertoire .git/modules
dans mon référentiel principal. J'ai un sous-module 'build', il suffit donc de supprimer toutes les références et de le réinitialiser:
rm -rf .git/modules
rm -rf build
git submodule init
git submodule update