Hoje em dia, o emacs detectará automaticamente as terminações de linha usadas em um arquivo e, portanto, você não verá se um arquivo possui \n
ou \r
ou \r\n
fins de linha. Qualquer edição no emacs preservará e imitará os finais de linha.
Para ver realmente o que o arquivo tem, tente cat -vet
, que mostra caracteres de controle, incluindo ^M
, guias ( ^I
) e fim de linha ( $
).
Observe que git
pode ser configurado para converter automaticamente \r\n
para \n
ou vice-versa ao mover arquivos de texto entre o diretório de trabalho e o banco de dados de objetos. Veja este artigo e este artigo para verificar como seu git está configurado, globalmente e por repositório e como você pode alterá-lo.
É difícil ver como sed
poderia ter introduzido o \r
. Estou assumindo que você está em um sistema Unix.
Na parte superior do seu diretório de trabalho, verifique se os seguintes comandos não mostram nada:
git config core.eol
git config core.autocrlf
find . -name .gitattributes -o -name attributes
Execute o arquivo original não editado por meio de cat -vet
e verifique se todos, alguns ou nenhum dos
as linhas terminam com os 3 caracteres ^M$
.