Quais alterações são git diff
exibidas no arquivo? No Windows, vi problemas com terminações de linhas causando problemas como este. Nesse caso, veja quais configurações você possui git config core.autocrlf
e git config core.safecrlf
. Há alguma documentação para essas configurações aqui .
Eu diria que, se você estiver usando git svn
para integração com o subversion, verifique se autocrlf
está desativado. Pelo que posso dizer, está quebrado nesta configuração e faz com que a maioria das ferramentas pense que os arquivos foram alterados quando você faz um checkout
para reverter as alterações.
Se você estiver vendo um problema em que está git checkout
, e git status
mostrar que o arquivo ainda está modificado, e git diff
mostra que o arquivo foi modificado em todas as linhas do arquivo, esse é o problema que está ocorrendo.
core.autocrlf
Se verdadeiro, faz com que o git converta CRLF no final das linhas em arquivos de texto em LF ao ler no sistema de arquivos, e faça inversão ao escrever no sistema de arquivos. A variável pode ser configurada para entrada; nesse caso, a conversão ocorre apenas durante a leitura do sistema de arquivos, mas os arquivos são gravados com LF no final das linhas. Atualmente, quais caminhos considerar "texto" (ou seja, estar sujeito ao mecanismo autocrlf) são decididos puramente com base no conteúdo.
core.safecrlf
Se verdadeiro, o git verifica se a conversão de CRLF controlada por core.autocrlf é reversível. O Git verificará se um comando modifica um arquivo na árvore de trabalho, direta ou indiretamente. Por exemplo, confirmar um arquivo seguido pelo check-out do mesmo arquivo deve render o arquivo original na árvore de trabalho. Se esse não for o caso da configuração atual do core.autocrlf, o git rejeitará o arquivo. A variável pode ser configurada como "warn", caso em que o git avisará apenas sobre uma conversão irreversível, mas continuará a operação. ...
git checkout HEAD -- index.htm
(check-out do último estado comprometido, em vez de check-out do índice) as obras?