Atlassian SourceTree: Como mudar as terminações de linha globalmente?

10

Existe uma maneira no Atlassian SourceTree ou com meu host git atual (BitBucket) para alterar as terminações de linha globalmente para todos os meus repositórios.

Acho que eles estão atualmente configurados para o Unix (acho que fiz isso por acidente), mas estou desenvolvendo apenas no Windows. Meu IDE continua me dando mensagens de aviso e erros sobre terminações de linhas mistas em meus arquivos e eu gostaria de consertá-lo, mas toda vez que eu empurro meu projeto para a nuvem ele é alterado de volta para terminações Unix, mesmo que eu mude o final da linha eles são revertidos de qualquer maneira.

    
por Scott 25.02.2015 / 23:55

1 resposta

12

Você pode configurar o tratamento final da linha por repositório adicionando um arquivo .gitattributes especial à pasta raiz do seu repositório Git. Se esse arquivo for confirmado no repositório, ele substituirá a configuração core.autocrlf do desenvolvedor individual.

Neste arquivo, você pode configurar o Git para detectar automaticamente os finais de linha.

Nota: - Nem todas as ferramentas gráficas do Git suportam o arquivo .gitattributes, por exemplo, o Eclipse IDE atualmente não suporta.

Aqui está um exemplo de arquivo .gitattributes. Você pode usá-lo como um modelo para seus repositórios:

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text

# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

Você notará que os arquivos são correspondidos - *. c, * .sln, * .png--, separados por um espaço, então recebem uma configuração - texto, texto eol = crlf, binário. Analisaremos algumas configurações possíveis abaixo.

text = auto O Git irá lidar com os arquivos da maneira que achar melhor. Esta é uma boa opção padrão.

texto eol = crlf O Git sempre converterá finais de linha em CRLF no checkout. Você deve usar isso para arquivos que devem manter as terminações CRLF, mesmo em OSX ou Linux. Por exemplo, aqui está um projeto do Windows que impõe finais de linha CRLF.

texto eol = lf O Git irá sempre converter os finais de linha para LF no checkout. Você deve usar isso para arquivos que devem manter as terminações LF, mesmo no Windows. Para exemplo , aqui está um projeto que reforça os finais de linha do LF.

binário O Git entenderá que os arquivos especificados não são texto e não deve tentar alterá-los. A configuração binária também é um apelido para -text -diff.

    
por 26.02.2015 / 14:51

Tags