2010-10-04 9 views
8

Un altro codificatore utilizza un computer Windows che sta caricando i ritorni a capo ovunque nella nostra fonte.Git: converti ritorno a capo r su nuova riga n con git hook?

C'è un modo per scrivere un hook git che converte tutti gli \r\n in \n?

Nota non ho usato ganci git prima, in modo un po 'tenersi per mano in più potrebbe andare un lungo cammino :)

risposta

10

La cosa più semplice è quello di set core.autocrlf to false sul lato di Windows.
(in questo modo Git non eseguirà alcuna conversione e manterrà inalterato l'eol).

Sul lato unix, un core.autocrlf impostato su true potrebbe aiutare a ripristinare l'eol corretto.
Come mathepic menziona nei commenti, e come I described in this SO answer, dal momento che Git1.7.2, è possibile utilizzare core.eol (a nativo), mantenendo core.autocrlf false.

Altrimenti è possibile utilizzare uno text driver or a filter driver with gitattributes files.
Non sono necessari ganci.

+0

VonC, forse voglio che 'core.autocrlf' sia impostato su vero? Io ** voglio ** rimuovere i ritorni a capo. –

+0

@macek: 'autocrlf' potrebbe fare il lavoro sul lato Unix, ma lo consiglierei a falso sul lato Windows, in modo da non introdurre tutti quei crlf in primo luogo. Ho modificato la mia risposta per riflettere quelle scelte e impostazioni. – VonC

+0

'core.eol' è il nuovo modo di farlo, penso. – alternative

1

Se stanno usando TortoiseGit, c'è un'opzione per farlo, sotto Git-> Config-> Conversione automatica CRLF.

+0

Scusa, non usare TortoiseGit –