Gitextensions: O ramo de checkout não está limpando as pastas do submódulo

Criado em 29 set. 2015  ·  4Comentários  ·  Fonte: gitextensions/gitextensions

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

git issue

Comentários muito úteis

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

Todos 4 comentários

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

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

yusirui picture yusirui  ·  4Comentários

andrey-helldar picture andrey-helldar  ·  4Comentários

talregev picture talregev  ·  4Comentários

longjxchina picture longjxchina  ·  4Comentários

mmoayyed picture mmoayyed  ·  3Comentários