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.

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


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

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

3
git rm --cached *.FileExtension

Isso deve ignorar todos os arquivos desta extensão


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


2

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.