2017-07-12 1 views
0

J'ai un sous-module dans mon repo avec un fichier .git qui a une seule ligneMigration d'un de gitdir de sous-module « en arbre »

gitdir: ../.git/modules/mysubmodule 

Cependant, le coureur de CI gitlab ce semble avoir des problèmes avec ce gitdir déclaration, donc je veux déplacer ../.git/modules/mysubmodule à ./mysubmodule/.git.

Je l'ai fait en utilisant mv je ne pas utiliser git mv, parce que cette commande se plaint avec

fatal: cannot move directory over file, source=.git/modules/mysubmodule, destination=mysubmodule/.git 

Et j'ai aussi enlevé la ligne worktree du fichier mysubmodule/.git/config.

Cependant, lorsque je veux valider les modifications (que ce soit pour le superprojet ou le sous-module), git ne liste aucune modification à valider.

C'est pourquoi je me demande comment puis-je déplacer le gitdir vers un autre chemin?

Répondre

1

Voir .git dans ./mysubmodule/.git git pense toujours mysubmodule comme sous-module et ne le montre pas comme faisant partie de superrepo.

Si vous souhaitez supprimer les sous-modules et les ajouter à nouveau directement, vous devez ajouter remove submodules et les ajouter sans le sous-répertoire .git.

Vous pouvez également passer de git submodule à git subtree. Voir https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt et https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844

+0

Cela semble très bien, j'ai supprimé le sous-module, mais comment puis-je l'ajouter sans créer un fichier .git avec une entrée gitdir? – user3637203

+1

Copiez le code et pas '.git /. Ensuite, vous devrez tout mettre à jour manuellement. – phd

+0

Cela a fonctionné! Merci! – user3637203