Existe-t-il un moyen simple de renommer un répertoire de sous-modules git (autre que de parcourir tout le mouvement de suppression et de le rajouter avec un nouveau nom de destination).
Et pendant que nous y sommes, pourquoi je ne peux tout simplement pas faire ce qui suit dans le répertoire parent: git mv old-submodule-name new-submodule-name
git
git-submodules
Lars Tackmann
la source
la source
.gitmodules
manuellement lors du déplacement d'un sous-module. voir ma réponse cinpm
montre comment la simplicité fonctionne. Un jour ... peut-être ... quelqu'un ... le réécrira ... en attendant ...Réponses:
J'ai trouvé que le workflow suivant fonctionnait:
mv oldpath newpath
git rm oldpath
git add newpath
git submodule sync
Remarque: cette approche ne met pas à jour correctement l'index et les .gitmodules dans les versions 2018 de GIT.
Remarque: Vous pourrez peut-être le faire
git mv oldpath newpath
maintenant, comme indiqué dans la réponse de VonC . (Assurez-vous que vous utilisez la dernière version de git)la source
git add newpath
ne pas utiliser de barre oblique.git/modules/SUBMODULE/config
fichier, de sorte qu'ilworktree
pointe à nouveau vers le bon répertoire.2.13.1
. Mais simplement fairegit mv old new
fonctionne comme un charme. Je n'ai besoin que de faire git commit pour terminer les changements.Git1.8.5 (octobre 2013) devrait simplifier le processus . Faites simplement un:
Voir plus dans commit 0656781fadca1 :
git 2.9 (juin 2016) va s'améliorer
git mv
pour le sous-module:Voir commit a127331 (19 avril 2016) par Stefan Beller (
stefanbeller
) .(Fusionné par Junio C Hamano -
gitster
- in commit 9cb50a3 , 29 avril 2016)la source
fatal: source directory is empty, source=my_source, destination=my_destination
. Je vais réessayer lorsque la version 1.8.5 aura une version stable.La bonne solution est:
La source: Renommer le sous-module git
la source
J'ai juste essayé quelques-unes des suggestions ci-dessus. Je suis entrain de courir:
J'ai trouvé qu'il était préférable de désamorcer le sous-module, de supprimer le répertoire et de créer un nouveau sous-module.
Au moins, c'est ce qui a fonctionné le mieux pour moi. YMMV!
la source
Il n'est pas possible de le renommer, vous devez donc d'abord le supprimer (
deinit
) et l'ajouter à nouveau.Donc, après l'avoir retiré:
vous pouvez également vérifier et supprimer les références à celui-ci dans:
.gitmodules
.git/config
.git/modules/<name>
(il est préférable de faire une sauvegarde), car chaque dossier a unconfig
fichier dans lequel il conserve la référence à sonworktree
puis organisez vos modifications en validant les modifications apportées à votre dépôt en:
et vérifiez si vous n'avez aucun problème en suspens en:
alors maintenant vous pouvez ajouter à nouveau le sous-module git:
la source
Modifiez le fichier .gitmodules pour renommer le sous-module, puis renommez le répertoire du sous-module.
Je pense que vous devrez peut-être faire un
git submodule sync
après, mais je ne suis pas en mesure de vérifier pour le moment.la source
MacOs : lorsque je veux utiliser la solution VonC pour changer le dossier du sous-module
Common
en minuscules:Je reçois
Solution - utilisez un nom de dossier temporaire et déplacez-le deux fois:
C'est tout :)
la source