Padronização das terminações de linha no Git
- #Git
Tenho alternado entre Windows e Linux nos últimos meses, e as diferenças realmente são enormes em relação a Java. Mas o que realmente me deixou surpresa foi descobrir que o sistema operacional também impacta no Git.
Ao pesquisar por esse aviso descobri que existem dois tipos de controle de caracteres para terminação de linha em arquivos: LF (Line Feed), equivalente ao início de uma nova linha para Linux e Mac, e CRLF (Carriage Return +LF), que move o cursor para o início de uma nova linha no Windows.
Se você está apenas estudando e desenvolve seus projetos de forma individual, isso não vai gerar nenhum conflito, mas para trabalhar em um ambiente colaborativo onde os desenvolvedores utilizam sistemas operacionais diferentes, é impossível não padronizar. Então por que já não aprender da forma como realmente funciona na prática?
A solução mais recomendada atualmente, é criar um arquivo .gitattributes na pasta raiz do repositório com as seguintes configurações:
* text=auto
(*): o arquivo não vai ser ignorado.
atributo: normaliza todas as terminações de linha do repositório para LF.
text=auto: padroniza apenas as terminações de linha de arquivos de texto para LF, enquanto os arquivos binários permanecem inalterados.
É possível consultar a terminações de linha com o seguinte comando:
git ls-files --eol
Caso as alterações não tenham efeito imediato, é possível forçar a atualização com o seguinte comando:
`git add --renormalize .`
O resultado vai trazer sempre: i/lf (git) | w/crlf (working tree) | attr/text=auto (atributo) | nome do arquivo.
Incrível, não é?! Se você quer aprender mais sobre o tema, é só acessar esse artigo aqui.




Publiquei este artigo no LinkedIn, e recebi um comentário super valioso para a comunidade!
Ainda não testei, mas para quem usa Gradle Wrapper, o #Git afeta também o executável, e a sugestão de macete para "formatá-lo pra linux" foi essa:
Alguém aqui já teve esse tive de dificuldade com o Git?
Compartilha nos comentários! :)
Excelente Dica
Obrigada pelas dicas!
Excelente; eu uso Fedora e Windows, vou conferir isso. Obrigado por compartilhar :)
Obrigado pela Dica!