Existe alguma maneira fácil de renomear um diretório de sub-módulo git (além de passar por todo o movimento de excluí- lo e adicioná-lo novamente com um novo nome de destino).
E enquanto estamos nisso, por que simplesmente não posso fazer o seguinte no diretório pai: git mv old-submodule-name new-submodule-name
git
git-submodules
Lars Tackmann
fonte
fonte
.gitmodules
manualmente ao mover um submódulo. veja minha resposta abaixonpm
mostra como funciona simples. Um dia ... talvez ... alguém ... o reescreva ... enquanto isso ...Respostas:
Eu encontrei o seguinte fluxo de trabalho funcionando:
mv oldpath newpath
git rm oldpath
git add newpath
git submodule sync
Nota: essa abordagem não atualiza o índice e os módulos .git corretamente nas versões 2018 do GIT.
Nota: Você pode ser capaz de agora apenas fazer
git mv oldpath newpath
agora, como fora apontado em VonC 's resposta . (Verifique se você está usando a versão mais recente do git)fonte
git add newpath
não usar uma barra final.git/modules/SUBMODULE/config
arquivo, de modo queworktree
aponte para o diretório certo novamente.2.13.1
. Mas simplesmente fazergit mv old new
funciona como um encanto. Eu só preciso fazer o git commit para concluir as alterações.Git1.8.5 (outubro de 2013) deve simplificar o processo . Basta fazer um:
Veja mais em commit 0656781fadca1 :
O git 2.9 (junho de 2016) será aprimorado
git mv
para o submódulo:Veja commit a127331 (19 de abril de 2016) por Stefan Beller (
stefanbeller
) .(Mesclado por Junio C Hamano -
gitster
- no commit 9cb50a3 , 29 de abril de 2016)fonte
fatal: source directory is empty, source=my_source, destination=my_destination
. Tentará novamente quando o 1.8.5 tiver uma versão estável.A solução correta é:
Fonte: Renomear sub-módulo git
fonte
Eu apenas tentei algumas das sugestões acima. Estou correndo:
Eu achei que era melhor reiniciar o submódulo, remover o diretório e criar um novo submódulo.
Pelo menos é o que funcionou melhor para mim. YMMV!
fonte
Não é possível renomeá-lo, então você deve removê-lo primeiro (
deinit
) e adicioná-lo novamente.Então, depois de removê-lo:
você também pode verificar e remover as referências a ele em:
.gitmodules
.git/config
.git/modules/<name>
(melhor para fazer um backup), pois cada pasta possui umconfig
arquivo onde mantém a referência à suaworktree
depois, prepare suas alterações, enviando alterações ao seu repo:
e verifique se não há problemas pendentes:
então agora você pode adicionar o submódulo git novamente:
fonte
Edite o arquivo .gitmodules para renomear o submódulo e, em seguida, renomeie o diretório do submódulo.
Acho que você pode precisar fazer isso
git submodule sync
depois, mas não estou em posição de verificar agora.fonte
MacOs : Quando eu quero usar a solução VonC para alterar a pasta do submódulo
Common
para minúscula:eu recebo
Solução - use um nome de pasta temporário e mova duas vezes:
Isso é tudo :)
fonte