web-dev-qa-db-fra.com

Comment "résoudre fatal: pas un dépôt git"?

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

17
coreDeviOS

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
21
Shivkumar kondi

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 ...

4
Alec Jacobson

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
0
Jason Goemaat