Должно ли git изменить окончание строки? (контроль + M или ^ M в конце первой строки)

Я использую git to pull мой код с Windows-машины.

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

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

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

Ответ 1

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

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

$ git config --global core.autocrlf input

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

$ git config --global core.autocrlf true

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

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

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

Существует альтернативный подход, который не включает принуждение каждого изменить свою конфигурацию. Это требует добавления в ваш репозиторий определенного имени файла .gitattributes. Подробнее о его теме в официальной Git официальной документации gitattributes.

Примечание 4: Тим Клем, githubber, опубликовал очень подробное сообщение в блоге (Запомните конец вашей линии) о концах строк, связанных конфигурационных записях и преимуществах gitattributes. Абсолютно необходимо прочитать, если вы готовы хорошо понять концепции, "почему" и внутреннюю технику.

Ответ 2

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

Ответ 3

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

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

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