Eu tenho um repositório Git que é acessado no Windows e no OS X e que eu sei que já contém alguns arquivos com finais de linha CRLF. Até onde eu sei, existem duas maneiras de lidar com isso:
Defina
core.autocrlfparafalsequalquer lugar,Siga as instruções aqui (ecoadas nas páginas de ajuda do GitHub) para converter o repositório para conter apenas terminações de linhas LF e, posteriormente, definido
core.autocrlfcomotrueno Windows einputno OS X. O problema é que se eu tiver arquivos binários no repositório aquele:- não estão corretamente marcados como binários em gitattributes e
- por acaso contenham CRLFs e LFs,
eles serão corrompidos. É possível que meu repositório contenha esses arquivos.
Então, por que eu não deveria simplesmente desativar a conversão de final de linha do Git? Há uma série de advertências vagas na web sobre ter core.autocrlfdesligado causando problemas, mas muito poucos específicos queridos; o único que descobri até agora é que o kdiff3 não pode lidar com terminações CRLF (não é um problema para mim) e que alguns editores de texto têm problemas de final de linha (também não são um problema para mim).
O repositório é interno à minha empresa e, portanto, não preciso me preocupar em compartilhá-lo com pessoas com diferentes configurações de autocrlf ou requisitos de final de linha.
Existem outros problemas em deixar os finais de linha como eu desconheço?
autocrlfcomo falso. Estou procurando por razões para defini-lo como verdadeiro.
autocrlf = input: parece ser a resolução perfeita entre os dois extremos: você mantém seu repositório limpo de porcarias de CRLF, e os desenvolvedores localmente do Windows podem usar o que quiserem sem que seus arquivos locais tenham algo mágico feito automaticamente. (Eles podem querer LF localmente por vários motivos, truena minha opinião , isso é ruim.) Não vejo desvantagens no uso autocrlf = input.
autocrlfpara false.