git пытается конвертировать LF в CRLF в Ubuntu с core.autocrlf, установленным в true - PullRequest
0 голосов
/ 01 декабря 2011

Я использую git на Ubuntu с autocrlf, установленным в true. Мой редактор настроен на использование LF в качестве символа конца строки. После того, как я отредактировал файл и сделал

git add .

Я получил:

warning: LF will be replaced by CRLF in file1.txt. (1)
The file will have its original line endings in your working directory. (2)

Что касается (1), почему git захочет преобразовать мой LF в моем файле в CRLF? Должно ли это работать точно так же, только если ваш файл содержит CRLF и только тогда git попытается преобразовать CRLF в LF?

Что касается (2), означает ли это, что файл, на который я смотрю, все еще будет содержать только LF, но снимок в области подготовки git преобразуется?

Ответы [ 2 ]

1 голос
/ 01 декабря 2011

Глядя на предупреждающее сообщение, я предполагаю, что ваша конфигурация следующая:

  • Вы используете окна с core.eol, установленным на native (по умолчанию в git 1.7.2 и выше) или явно установите core.eol на crlf
  • Ваш core.autocrlf имеет значение input

Эти git attributes, core.autocrlf и core.eol letвы конфигурируете то, что вы хотите для концов строк и их возможных значений, и что они означают, отражено на странице руководства git и этот ответ stackoverflow

И ответ на оба (1) и (2)), ваши вопросы: «Потому что вы настроили это так»

То, что вы должны сделать, зависит от того, на какой платформе вы находитесь, и с какой другой платформы вы будете получать доступ к git.Рекомендуется разрешить git хранить только LF в качестве конца строки, так как сгенерированный хэш блоба изменится в противном случае, и git будет жаловаться на «измененные строки», даже если вы меняете только символы конца строки.

Поскольку вы работаете в Ubuntu, вы хотите установить core.eol в lf и core.autocrlf в input, чтобы git не преобразовывал LF в CRLF в вашем рабочем дереве.

0 голосов
/ 30 декабря 2011

Если вы не занимаетесь кроссплатформенной разработкой (в частности, для Windows), установите для autocrlf значение false и попросите людей, с которыми вы работаете, сделать то же самое. Нет необходимости изменять файлы, прежде чем они будут превращены в объекты в git. Это огромные хлопоты. Я никогда больше не занимался этой проблемой за 4 года использования git. Если вы не используете x-platform с Windows , установите значение false. Легко исправить.

...