Могу ли я использовать mSysGit и Cygwin's git?

После перехода на Windows я использую msysgit с включенной в него оболочкой bash, и это хорошо работает для меня. Но у меня есть проблемы: наш процесс сборки ant не будет работать в этой оболочке, я бы хотел использовать xterms Cygwin вместо командного окна Windows, так как совместимость терминала недостаточно хороша для запуска всего остального, что мне нужно в это окно и так далее.

Я на самом деле попробовал придерживаться msysgit в командной оболочке Windows, чтобы мне не нужно было использовать отдельное окно для сборки, но с этим возникло еще больше проблем: отсутствие cd - и завершение файла убивает меня, большинство команд, которые я хотел бы передать, отсутствуют и т. д.

Так что, если я перейду на использование мерзавца Cygwin, или, что еще хуже, использую оба в разное время, концы строк меня укусят? Будет ли мерзавец Cygwin ожидать, что все будет \n и думаю, что он видит изменения, потому что mSysGit преобразован в \r\n при выезде? Будет ли Cygwin Git проверить как \n и запутать мой Windows Eclipse, который, я уверен, хочет, чтобы все было \r\n?

7 ответов

Самый простой подход - установить любой git (msysGit или Cygwin git) на игнорирование стилей crlf.

core.autocrlf=false

Таким образом, у вас нет муравьиного нежелательного конфликта.

Будет ли Cygwin's git помечен как \ n и запутает мое Windows Eclipse, которое, я уверен, хочет, чтобы все было \r\n?

Большинство современных приложений (включая Eclipse) прекрасно могут использовать только \ n.

Есть несколько раздражающих исключений (например, протокол электронной почты), но в большинстве случаев вы можете просто использовать \ n для всего.

Итак, как говорит VonC, просто отключите настройку autocrlf, и все будет хорошо.

Из этого поста - "Настройка сервера GIT с помощью Msysgit в Windows" - пользователь предложил эту ссылку - http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/

Я использовал эту настройку и безупречно работает на Windows для меня.

Надеюсь, поможет

На самом деле, просто придерживаться msysGit не спасет вас. У меня была одна проблема, при которой каждый отдельный исходный файл отображался как измененный из-за проблемы с завершением строки при использовании разных версий msysGit. Настройка core.autocrlf в файле конфигурации git исправила это.

У меня болит голова в конце строки. Я использую Cygwin Git, и он всегда сообщает о некоторых недавно извлеченных текстовых файлах как "измененные". Когда я изменил "core.autocrlf" с "true" на "input", десять из пятнадцати файлов исчезли из измененного списка, а оставшиеся 5 исчезли после того, как я установил "core.autocrlf" в "false".

Я не могу голосовать за решение VonC из-за низкой репутации, но я бы сказал, что оно работает для меня.

После некоторой отладки я решил ее для своего случая. Я скопировал файл id_rsa из раздела Linux окольным путем, оставив окончания строк в формате LF (Unix). Открытие файла в eclipse и преобразование концов строк в Windows исправили это. Кроме того, у меня для GIT_SSH установлено значение Plink (из Putty), следуя этим инструкциям: http://www.mainelydesign.com/blog/view/git-plink-for-ssh-on-windows

Я установил для core.autocrlf значение false в msysgit и взял любой Cygwin, установленный по умолчанию.

У меня были проблемы с извлечением из командной строки с использованием инструментов cygwin и инструментов mingw, поставляемых с msysgit, из-за очевидных изменений в режимах файлов (755, по-видимому, меняется на 644 в каждом файле). Похоже, это проблема, связанная с исполняемым битом. git reset не помог.

Однако выполнение первоначального клонирования из окна графического интерфейса msysgit не привело к возникновению этой проблемы, и теперь я могу свободно использовать cygwin либо из собственной оболочки bash, либо из командной строки, либо msysgit из оболочки bash. Другими словами, все кажется счастливым.

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

Другие вопросы по тегам