usar - git tutorial




Resync git repo com novo arquivo gitignore (2)

A solução mencionada em " .gitignore file not ignoring " é um pouco extrema, mas deve funcionar:

# rm all files
git rm -r --cached .
# add all files as per new .gitignore
git add .
# now, commit for new .gitignore to apply
git commit -m ".gitignore is now working"

( Certifique-se de confirmar primeiro as alterações que deseja manter , para evitar qualquer incidente, como comentários de jball037 abaixo .
A opção --cached manterá seus arquivos intocados no seu disco embora.)

Você também tem outra solução mais refinada na postagem do blog " Fazendo o Git ignorar arquivos já rastreados ":

git rm --cached `git ls-files -i --exclude-standard`

Bassim sugere em sua edição :

Arquivos com espaço em seus caminhos

Caso você receba uma mensagem de erro como fatal: path spec '...' did not match any files , pode haver arquivos com espaços em seu caminho.

Você pode remover todos os outros arquivos com a opção --ignore-unmatch :

git rm --cached --ignore-unmatch `git ls-files -i --exclude-standard`

mas os arquivos não correspondentes permanecerão no seu repositório e terão que ser removidos explicitamente, colocando o caminho entre aspas duplas:

git rm --cached "<path.to.remaining.file>"

É possível "atualizar" um repositório git depois de atualizar o arquivo gitignore?

Acabei de adicionar mais ignorações (?) Ao meu gitignore e gostaria de remover coisas já no repo correspondente ao novo arquivo.


Eu posso entender mal, mas você está tentando excluir arquivos recém-ignorados ou você quer ignorar novas modificações nesses arquivos? Neste caso, a coisa está funcionando.

Se você quiser excluir arquivos ignorados previamente confirmados, use

git rm –cached `git ls-files -i –exclude-standard`
git commit -m 'clean up'






git