a partir da versão 1.9.3 do git (Apple Git-50) no mac, como faço para remover um submódulo git? Estou lendo um monte de informações desatualizadas com muitos desenvolvedores me dizendo que não vão funcionar. Qual é a forma atual? vai git deinit pathToSubModule
fazer o truque?
As etapas que pensei que funcionariam estão aqui, mas os comentários dizem que não.
Deixe-me explicar minha situação atual e o que preciso fazer. Instalei o repositório Quick e o adicionei como submódulo ao meu projeto. Este código já foi verificado e outros estão usando. O que eu preciso fazer agora é bifurcar o mesmo repositório Quick e hospedá-lo em um github mais seguro que minha empresa tem (ou seja, um github completamente outro privado). Depois de fazer o fork, eu quero adicionar esse fork como um gitSubmodule e deixá-lo substituir o submódulo Quick atual que eu instalei anteriormente.
update: eu li que o seguinte é a maneira correta na última versão do git, por favor, confirme?
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
fonte
Respostas:
Você tem a
git submodule deinit
deinit
fonte
rm -rf <asubmodule>
se já tiver feito check-out de uma versão do repositório base que cancelou o registro do submódulo.Estou usando o Git versão 2.16.2 e
git rm
executa o trabalho muito bem:Você pode verificar com
git status
e segit diff --cached
isso desinicializa o submódulo e se modifica.gitmodules
automaticamente. Como sempre, você precisa confirmar a mudança.No entanto, mesmo que o submódulo seja removido do controle de origem,
.git/modules/path-to-submodule
ainda contém o repositório do submódulo e.git/config
seu URL, então você ainda precisa removê-los manualmente:Manter o repositório e a configuração do submódulo é intencional para que você possa desfazer a remoção com, por exemplo
git reset --hard
.fonte
Como remover um submódulo com segurança.
(adiciona a https://stackoverflow.com/a/1260982/342794 )
Liste e localize a seção do submódulo no
.gitmodules
arquivo. Diga via terminalvi .gitmodules
. Exemplo:Os submódulos podem ser usados com garfos locais. Para projetos de longa execução, o código pode ser diferente do repositório original e pode ter algumas correções. É uma boa ideia verificar se o código do submódulo passou por alterações no decorrer do projeto. Exemplo: Observe os logs, se está apontando para um
master
branch ou algum branch local. explorando logs do git para encontrar modificações que foram feitas via terminal. normalmente, eles são armazenados em um diretório, meu exemplo, emsubmodules
diretório.Remova a seção de submódulo dos módulos .git e salve o arquivo. Exemplo:
git status
deve mostrar apenas o seguinte como modificadoFaça as mudanças com
git add .gitmodules
.Liste e localize a seção do submódulo nos
.git/config
arquivos. Diga via terminalvi .git/config
. Exemplo:Remova os arquivos sobmodule do cache do git. executando
git rm --cached submodules/afnetworking
(sem barra final) o removeria com sucesso. Exemplo:Remova os arquivos do submódulo no
.git
diretório comrm -rf .git/modules/...
. Confirme comgit status
depois.Comprometa as mudanças. Confirme com
git status
depois.Exclua os arquivos de submódulo não rastreados.
Exclua as referências do projeto Xcode. Construir, corrigir problemas de compilação e tempo de execução.
fonte