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

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

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

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

Ответ 1

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

core.autocrlf=false

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

Ответ 2

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

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

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

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

Я установил core.autocrlf в false в msysgit и взял по умолчанию любой cygwin.

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

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

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

Ответ 7

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