Eu tenho a estrutura de ramificação abaixo (simplificada)
/Mestre
readme.md
/desenvolve
readme.md
pasta1 /
submódulo inicializado nesta pasta
Eu esperaria que, quando eu alternar entre os 2 ramos, a pasta do submódulo também seja removida. Estou no Windows 10 com a versão 2.48.05
A verdadeira mensagem que estou recebendo é
"C:\Program Files (x86)\Git\bin\git.exe" checkout "master"
Your branch is up-to-date with 'origin/master'.
warning: unable to rmdir Daedalus.Web/Areas/blog: Directory not empty
warning: unable to rmdir Daedalus.Web/Areas/emails: Directory not empty
Switched to branch 'master'
Done
Alguém poderia lançar alguma luz sobre por que isso pode estar acontecendo ou como posso contornar isso. Meu projeto é privado, mas se necessário, tentarei recriar o problema em um Git público para demonstrar o problema
Você poderia tentar executar git checkout master
no Git Bash?
Quais são os arquivos nas pastas blog
e email
? Eles estão em .gitignore?
Olá @ Radrik5 ,
Acabei de tentar isso no Git Bash e recebo a mesma mensagem acima. Diretórios agora vazios etc.
Você mencionou .gitignore
- a pasta de submódulos deve ser nomeada no repositório principal .gitignore?
Nas pastas sub-modules
existem alguns folders
, .html
, .cs
arquivos etc.
Parece que este é um problema bem conhecido com submódulos. Consulte https://git-scm.com/book/en/v2/Git-Tools-Submodules#Issues -with-Submodules.
Para quem procura uma solução: (desculpe, estou 4 anos atrasado ...)
Versões mais novas do Git (Git> = 2.13) simplificam tudo isso adicionando o sinalizador --recurse-submodules ao comando git checkout, que se encarrega de colocar os submódulos no estado correto para o branch para o qual estamos mudando.
Use git checkout --recurse-submodules master
Use git config submodule.recurse true
para dizer ao git para sempre usar --recurse-submodules
(apenas nas versões 2.14+ do git)
A fonte é da postagem de @ Radrik5 acima
Comentários muito úteis
Para quem procura uma solução: (desculpe, estou 4 anos atrasado ...)
Use
git checkout --recurse-submodules master
Use
git config submodule.recurse true
para dizer ao git para sempre usar--recurse-submodules
(apenas nas versões 2.14+ do git)A fonte é da postagem de @ Radrik5 acima