Sobre os delimitadores de linha
Toda vez que você pressiona return no seu teclado, você insere um caractere invisível denominado delimitadores de linha. Os diferentes sistemas operacionais gerenciam os delimitadores de formas diferentes.
Ao colaborar em projetos com Git e o GitHub, o Git pode produzir resultados inesperados se, por exemplo, você estiver trabalhando em uma máquina que use o Windows e o seu colaborador dizer uma mudança no macOS.
Você pode configurar o Git para gerenciar os delimitadores automaticamente para que você possa colaborar efetivamente com pessoas que usam diferentes sistemas operacionais.
Configurações globais para delimitadores de linhas
O comando git config core.autocrlf
é usado para alterar a forma como o Git lida com delimitadores de linha. É um argumento único.
No macOS, basta passar input
para a configuração. Por exemplo:
$ git config --global core.autocrlf input
# Configure Git to ensure line endings in files you checkout are correct for macOS
No Windows, basta passar true
para a configuração. Por exemplo:
$ git config --global core.autocrlf true
# Configure Git to ensure line endings in files you checkout are correct for Windows.
# For compatibility, line endings are converted to Unix style when you commit files.
No Linux, basta passar input
para a configuração. Por exemplo:
$ git config --global core.autocrlf input
# Configure Git to ensure line endings in files you checkout are correct for Linux
Configurações por repositórios
Opcionalmente, você pode configurar um arquivo .gitattributes
para gerenciar como o Git lê delimitadores de linha em um repositório específico. Quando você faz commit desse arquivo em um repositório, ele substitui a configuração core.autocrlf
para todos os colaboradores do repositório. Isso garante um comportamento consistente para todos os usuários, independentemente das configurações e do ambiente Git.
O arquivo .gitattributes
deve ser criado na raiz do repositório e deve ser feito o commit como qualquer outro arquivo.
Um arquivo .gitattributes
se parece com uma tabela com duas colunas:
- À esquerda está o nome do arquivo para o Git fazer a correspondência.
- À direita está a configuração do delimitador de linha que o Git deve usar para esses arquivos.