Limpar cache local git

97

Eu tenho um projeto Webstorm que estava prestes a enviar, mas antes de pressionar o botão de confirmação na GUI do Git Windows, lembrei que não quero comprometer o .ideaconteúdo da minha pasta.

Usei o site que gera automaticamente .gitignorespara determinados IDEs e o adicionei ao meu .gitignorearquivo.

Todos os .ideaarquivos que são explicitamente ignorados ainda aparecem para confirmação, apesar de eu ter removido e adicionado novamente os arquivos em questão.

Também enviei o arquivo gitignore sem nenhum outro arquivo e colei novamente meu conteúdo, mas ainda não estou ignorando os arquivos .idea.

Como faço para dizer ao Git para atualizar ou limpar seu cache?
Tentei / cd ing no diretório em questão e digitei

git clean -n

mas nenhum arquivo aparece.

Jozenbasin
fonte

Respostas:

127

Todos os arquivos .idea que são explicitamente ignorados ainda estão aparecendo para confirmação

você tem que removê-los da área de teste

git rm --cached .idea

agora você tem que confirmar essas alterações e elas serão ignoradas a partir deste ponto.
Uma vez que o git comece a rastrear as alterações, ele não irá "parar" de rastreá-las, mesmo que tenham sido adicionadas ao .gitignorearquivo posteriormente.

Você deve removê-los explicitamente e, em seguida, confirmar a remoção manualmente para ignorá-los totalmente.


insira a descrição da imagem aqui

insira a descrição da imagem aqui

CodeWizard
fonte
4
No entanto, nunca envio os arquivos que estou tentando ignorar. Isso me dizfatal: pathspec '.idea' did not match any files
jozenbasin
Quando você digita git status, você os vê? WebStorm pode ter adicionado para você se você marcou a caixa de seleção para adicionar arquivos automaticamente
CodeWizard
2
Não tenho ideia, mas parece que o comando que você me deu funcionou, embora tenha retornado um erro fatal .... Os arquivos não aparecem mais para confirmação.
jozenbasin
você pode considerar adicionar -rpara remoção recursiva
Vishrant
90

Quando você acha que seu git está bagunçado, você pode usar este comando para fazer tudo atualizado.

git rm -r --cached .
git add .
git commit -am 'git cache cleared'
git push

Além disso, para reverter o último commit, use o seguinte:

git reset HEAD^ --hard
Kamal Kumar
fonte
6
Não use git push se não quiser enviar alterações para o remoto. No entanto, se você fez isso, vá para a guia de controle de versão na parte inferior do Android Studio, clique com o botão direito em commit anterior e escolha "Redefinir branch atual para aqui"
Swapnil
a parte de redefinição era, na melhor das hipóteses, confusa. mas eu fiz 'git push', e estava bem.
Seun S. Lawal
8

se você fizer alguma mudança no git ignore, você terá que limpar o cache do git também

> git rm -r --cached . 
> git add . 
> git commit -m 'git cache cleared'
> git push

se quiser remover qualquer pasta ou arquivo em particular,

git rm  --cached filepath/foldername
Akshay Kumar
fonte
3
git rm --cached *.FileExtension

Isso deve ignorar todos os arquivos desta extensão

Allan Ferraz
fonte
3

depois dessa mudança no arquivo git-ignore execute este comando, Este comando irá remover todo o cache de arquivos, não os arquivos ou mudanças

git rm -r --cached.

após a execução deste comando confirme os arquivos

para remover um único arquivo ou pasta do cache use este comando

git rm --cached filepath / foldername

Akshay
fonte
2

Para remover o diretório .idea / em cache. por exemplogit rm -r --cached .idea

Max Droid
fonte