Como alterar as configurações de final de linha

Existe um arquivo ou menu que me permita alterar as configurações de como lidar com os términos de linha?

Existem 3 opções:

  1. Finalize o estilo Windows, confirme o estilo Unix

    O Git converterá o LF em CRLF ao verificar arquivos de texto. Ao confirmar arquivos de texto, o CRLF será convertido em LF. Para projetos de plataforma cruzada, essa é a configuração recomendada no Windows (“core.autocrlf” está definido como “true”)

  2. Faça o check-out no estado em que se encontra, comprometa o estilo Unix

    O Git não realizará nenhuma conversão ao verificar arquivos de texto. Ao confirmar arquivos de texto, o CRLF será convertido em LF. Para projetos multiplataforma, esta é a configuração recomendada no Unix (“core.autocrlf” está definido como “input”).

  3. Finalizar como está, confirmar como está

    O Git não realizará nenhuma conversão ao verificar ou confirmar arquivos de texto. Escolher essa opção não é recomendado para projetos de plataforma cruzada (“core.autocrlf” está definido como “false”)

A maneira normal de controlar isso é com o git config

Por exemplo

 git config --global core.autocrlf true 

Para detalhes, role para baixo neste link para o Pro Git para a seção chamada “core.autocrlf”


Se você quiser saber em qual arquivo está salvo, você pode executar o comando:

 git config --global --edit 

e o arquivo de configuração global do git deve abrir em um editor de texto, e você pode ver de onde o arquivo foi carregado.

Formato final de linha usado no sistema operacional

  • Windows: CR (Carriage Return) e LF (LineFeed \n ) par
  • OSX, Linux: LF (LineFeed \n )

Podemos configurar o git para corrigir automaticamente os formatos de finalização de linha para cada sistema operacional de duas maneiras.

  1. Configuração Global Git
  2. Use o arquivo .gitattributes

Configuração Global

No Linux / OSX

 git config --global core.autocrlf input 

Isso consertará qualquer CRLF para LF quando você confirmar.

No Windows

 git config --global core.autocrlf true 

Isso fará com que, quando você fizer o check-in no Windows, todos os LF sejam convertidos em CRLF

Arquivo .gitattributes

É uma boa ideia manter um arquivo .gitattributes , pois não queremos que todos em nossa equipe definam suas configurações. Este arquivo deve manter o caminho da raiz do repo e se existir um, o git irá respeitá-lo.

 * text=auto 

Isso tratará todos os arquivos como arquivos de texto e converterá para a linha do sistema operacional, terminando no checkout e de volta ao LF no commit automaticamente. Se quisesse dizer explicitamente, use

 * text eol=crlf * text eol=lf 

O primeiro é para checkout e o segundo é para commit.

 *.jpg binary 

Trate todas as imagens .jpg como arquivos binários. Portanto, nenhuma conversão é necessária

Para uma solução de configuração do repository, que pode ser redistribuída para todos os desenvolvedores, verifique o atributo text no arquivo .gitattributes . Dessa forma, os desenvolvedores não precisam definir manualmente seus próprios terminais de linha no repository, e como diferentes repositorys podem ter diferentes estilos de finalização de linha, o core.autocrlf global não é o melhor, pelo menos na minha opinião.

Por exemplo, desarquivando este atributo em um determinado caminho [ . – text] forçará o git a não tocar nas terminações da linha ao fazer check-in e check-out. Na minha opinião, esse é o melhor comportamento, já que a maioria dos editores de texto modernos pode lidar com ambos os tipos de finais de linha. Além disso, se você, como desenvolvedor, ainda quiser fazer a conversão de término de linha ao efetuar o check-in, ainda poderá definir o caminho para corresponder a determinados arquivos ou definir o atributo eol (em atributos.git) em seu repository.

Confira também essa postagem relacionada, que descreve o arquivo .gitattributes e o atributo text em mais detalhes: Qual é a melhor estratégia de tratamento de CRLF (retorno de carro, alimentação de linha) com o Git?

Se você quiser converter de volta os formatos de arquivo que foram alterados para o formato UNIX a partir do formato PC.

(1) Você precisa reinstalar o Tortoise GIT e na seção “Line Ending Conversion” certifique-se de ter selecionado a opção “Check out as is – Check in as is”.

(2) e mantenha as configurações restantes como estão.

(3) uma vez que a instalação é feita

(4) escreva todas as extensões de arquivo que são convertidas para o formato UNIX em um arquivo de texto (extensions.txt).

 ex:*.dsp *.dsw 

(5) copie o arquivo no seu clone Execute o seguinte comando no GITBASH

 while read -ra; do find . -type f -name "$a" -exec dos2unix {} \; done