Ajouter un sous-module qui ne peut pas être supprimé de l'index
J'essaye d'ajouter un sous-module qui existaient déjà (différents git remote repository). Comme je n'ai pas cherché avant de comment le faire correctement, je pense que j'ai foiré mon référentiel et j'ai besoin d'aide pour le fixer à nouveau.
J'ai déjà supprimé toutes les sections pertinentes de la .gitmodules et .git/config concernant les submodules je veux supprimer. J'ai aussi vérifié qu'il n'y a pas de répertoire de modules à l'intérieur de mon .git/annuaire.
Cependant, lorsque je lance la commande git rm --cached path_to_submodule
le message suivant est affiché:
fatale: pathspec 'path_to_submodule" ne correspond pas à tous les fichiers
Que la commande précédente échoue, lorsque j'essaie d'ajouter de nouveau le même sous-module avec les nouvelles définitions, l'exécution de la commande git submodule add gituser@host:repo.git
c'est le message qui s'affiche:
'repo' existe déjà dans l'index
source d'informationauteur Rui Gonçalves
Vous devez vous connecter pour publier un commentaire.
La seule façon de message (
'repo' already exists in the index
) peut être affiché est si 'repo' existe toujours dans l'index (voir ce chapitre sur la sous-module):Même si "
rack
" n'est pas un sous-module, si elle existe, elle permettrait d'éviter la déclaration d'un sous-module du même nom.Peut se produire, lors de la fusion avec l'erreur, manuel de suppression de dossier de sous-module, ou quelque chose d'autre, comme Hallileo Comète
dans le fichier
.gitmodules
- supprimer des liens vers des sous-module (toute la partie avec sous-module de nom)dans le fichier
.git\config
- supprimer des liens vers des sous-module, comme dans l'étape précédentedans le dossier
.git\modules
- supprimer le dossier avec chemin d'accès relatif similaires au chemin d'accès relatif de "problème" moduleassurer, que le dossier de la sous-module n'est pas existe plus
alors:
$ git submodule add -f --name <name> <git://path_1.git> <path_2>
où: nom: nom de la sous-module u le souhaitez, peut être égal à votre
repo
nom; - chemin de sous-module source repo (ie - github, etc), - chemin relatif au dossier où le sous-module de résidercela permet u pour ajouter des sous-module dans le chemin ou le nom qui est toujours présent dans l'index, mais pas à l'état naturel vivant.
je n'ai pas trouvé de méthode pour supprimer ces liens morts à partir de l'index, mais quand ils sont forcés
Si la sortie de l'ajout d'un nouveau sous-module est:
Conseil la prochaine commandes
La sortie sera quelque chose de similaire à:
Ensuite, supprimer le dossier index astuce:
Essayez à nouveau d'ajouter le sous-module
'submodules/uasdk-clib" existe déjà dans l'index
git rm -r --cached submodules/uasdk-clib
git sous-module add-b chine/presse/section 16.8.0 -f ssh://[email protected] submodules/uasdk-clib