Como adiciono arquivos no Git ao caminho de um submódulo anterior?

Eu tenho um projeto que costumava conter um submódulo, no caminho mysubmodule . Instalei o último Git da fonte (1.8.3-rc2) e executei o git submodule deinit mysubmodule . Em seguida, apaguei o arquivo .gitmodules e .gitmodules a alteração. Eu também deletei o diretório mysubmodule pasta mysubmodule .

Eu gostaria de mysubmodule os arquivos do mysubmodule para o mysubmodule agora, mas o git diz que não há mudanças. Se eu digitar git add mysubmodule não faz nada. Se eu digitar git add mysubmodule/file.txt ele diz fatal: Path 'mysubmodule/file.txt' is in submodule 'mysubmodule'

Eu também descobri que se você verificar uma nova versão do mysubmodule , ele cria um diretório mysubmodule , apesar de não ter nenhum arquivo .gitmodules . E executar o git submodule init fornece um No submodule mapping found in .gitmodules for path 'mysubmodule' erro No submodule mapping found in .gitmodules for path 'mysubmodule' .

Como faço para corrigir isso?

O Git ainda acha que o mysubmodule é um submódulo, porque está gravado no índice com um modo especial “160000”.
Veja ” atualização do submódulo git necessária apenas inicialmente? ” Para mais.
Para verificar isso, como nesta resposta , você pode fazer um:

  $ git ls-tree HEAD mysubmodule 160000 commit c0f065504bb0e8cfa2b107e975bb9dc5a34b0398 mysubmodule 

Isso não depende da presença do arquivo .gitmodule ou do conteúdo do mysubmodule .

Você precisa remover essa input do índice primeiro:

  git rm --cached mysubmodule 

Então você pode prosseguir.