Quel est le moyen de supprimer un git sous-module?
de git version 1.9.3 (Apple Git-50) sur mac comment puis-je supprimer un git sous-module? Je lis beaucoup de vieilles informations avec de nombreux développeurs de me dire qu'ils ne fonctionnent pas. Qu'est-ce que la façon actuelle ?
va git deinit pathToSubModule
faire l'affaire ?
Les étapes que j'ai pensé de travail sont ici mais les commentaires disent qu'ils l'habitude.
Laissez-moi vous expliquer ma situation actuelle et de ce que j'ai accompli. J'ai installé le Rapide du référentiel et ajouté à un sous-module de mon projet. Ce code est déjà enregistré et d'autres sont à l'utiliser. Ce que j'ai maintenant besoin de faire est de fourche la même Rapide du référentiel et de l'héberger sur un plus sûr github que mon entreprise a (donc un tout autre privé github). Après la bifurcation, je tiens à ajouter que la fourche comme un gitSubmodule et laisser remplacer l'actuel Rapide du sous-module j'avais installé précédemment.
mise à jour: j'ai lu que les suivants est la façon correcte sur la dernière version git s'il vous plaît confirmer?
To remove a submodule added using:
git submodule add [email protected]:repos/blah.git lib/blah
Run:
git rm lib/blah
That's it.
For old versions of git (circa ~1.8.5) use:
git submodule deinit lib/blah
git rm lib/blah
git config -f .gitmodules --remove-section submodule.lib/blah
- J'ai lutté sous-module de problèmes pour les deux jours. La percée est venue quand j'ai trouvé ceci: forums.developer.apple.com/thread/13102. Fondamentalement, Xcode, et peut-être d'autres applications, lutte pour élargir les url contenant '~'. Une fois que j'ai changé ssh://[email protected]/~/git/MyRepo.git ssh://[email protected]/home/username/git/MyRepo.git (rechercher le chemin d'accès réel sur votre serveur), tous les étrangeté disparu à une dizaine de minutes.
Vous devez vous connecter pour publier un commentaire.
Vous avez le
git submodule deinit
deinit
rm -rf <asubmodule>
si vous avez déjà enregistré une version de la base de référentiel qui a non-inscrit le sous-module.Comment retirer un sous-module.
(ajoute à https://stackoverflow.com/a/1260982/342794)
Liste et recherchez la sous-module de section dans
.gitmodules
fichier. Dire via un terminalvi .gitmodules
. Exemple:Submodules peut être utilisé avec local fourches. Pour une longue course projets, code peuvent différer de l'original repo et peut avoir quelques bugs. C'est une bonne idée de vérifier si le sous-module de code est allé par le biais de changements en cours de projet. Exemple: Regardez les journaux, si elle est pointée à
master
de la succursale ou de certains locaux de la branche. explorer git journaux pour trouver les modifications qui ont été effectuées via un terminal. généralement, ceux-ci sont stockés dans un répertoire, mon exemple, en vertu desubmodules
répertoire.Supprimer le sous-module de la section de .gitmodules, enregistrez le fichier. Exemple:
git status
ne doit montrer que la suite modifiéStade de la
git add .gitmodules
.Liste et recherchez la sous-module de section dans
.git/config
fichiers. Dire via un terminalvi .git/config
. Exemple:Supprimer le git cache sobmodule fichiers. l'exécution de
git rm --cached submodules/afnetworking
(pas de slash) serait de l'enlever avec succès. Exemple:Supprimer le sous-module des fichiers sous
.git
répertoire avecrm -rf .git/modules/...
. Confirmer avecgit status
par la suite.Valider les modifications. Confirmer avec
git status
par la suite.Supprimer le sous-module non chaînée des fichiers.
Supprimer les références à partir de Xcode projet. Construire, correction de la compilation et de l'exécution des questions.
Je suis en utilisant Git version 2.16.2 et
git rm
fait le travail la plupart du temps:Vous pouvez le vérifier avec
git status
etgit diff --cached
que ce deinitializes le sous-module et modifie.gitmodules
automatiquement. Comme toujours, vous devez vous engager le changement.Cependant, même si le sous-module est retiré de contrôle de code source,
.git/modules/path-to-submodule
contient toujours le sous-module référentiel et.git/config
contient son adresse URL, vous devez supprimer ceux manuellement:En gardant le sous-module référentiel et la configuration est intentionnelle, de sorte que vous pouvez annuler la suppression, par exemple avec
git reset --hard
.