Должен ли git изменить конец строки? (контроль + M или ^ M в конце первой строки) - PullRequest
10 голосов
/ 10 февраля 2012

Я использую git для pull моего кода с машины Windows.

Когда другие разработчики pull файлы с сервера на своей машине liunx, они имеют ^M в концепервая строка.

Как сделать так, чтобы git позаботился об этом для меня?

Я имею в виду, git должен изменить конец строки (удалите control + M или ^ M в концепервой строки), когда я нажимаю (с моего оконного компьютера) код на сервере.

Ответы [ 3 ]

17 голосов
/ 10 февраля 2012

Эта страница справки GitHub посвящена этой очень специфической теме и содержит пошаговые инструкции по правильной настройке конфигурации Git.

В основном, если вы работаете в Mac / Linux, используйте

<code>$ git config --global core.autocrlf input

Если вы скорее парень из Windows, используйте

<code>$ git config --global core.autocrlf true

Примечание : это преобразует окончания строк на лету при выполнении проверки или фиксации и гарантирует, что ваши текстовые файлы будут иметь LF-строкуокончания в вашем репозитории, в то время как в вашем рабочем каталоге имеются собственные окончания строк.

Примечание 2 : не переписывает историю вашего репозитория.Существующие коммиты в репо сохранят свои потенциально смешанные окончания строк.

Примечание 3 : убедитесь, что каждый коммиттер выполняет этот шаг конфигурации перед следующей фиксацией.

Альтернативный подход, который не требует принуждения всех к изменению конфигурации, существует.Требуется добавить определенное имя файла .gitattributes в ваш репозиторий.Более подробную информацию о его теме можно найти в официальной документации git gitattributes .

Примечание 4 : Гитуббер Тим Клем опубликовал очень подробное сообщение в блоге ( Mind the End of Your Line ) об окончаниях строк, связанных записях конфигурации и преимуществах gitattributes.Абсолютно необходимо прочитать, если вы хотите хорошо понять концепции, «почему» и внутренний механизм.

1 голос
/ 10 февраля 2012

Попробуйте установить для core.autocrlf значение true (см. git-config ).

0 голосов
/ 10 февраля 2012

Это не проблема с GIT, это проблема с тем, как файл был изначально создан / загружен и сохранен.Лучшее решение - найти редактор, который позволит вам установить тип конца строки в Unix.

Это похоже на способ сделать это на стороне Windows с GIT, но я думаю, что это плохой способсделать это вообще

http://lostechies.com/keithdahlby/2011/04/06/windows-git-tip-hide-carriage-return-in-diff/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...