Можно ли использовать версию MinGW git с Cygwin? - PullRequest
0 голосов
/ 19 июня 2020

Я использую cygwin в качестве основной оболочки при программировании на Windows, а не git bash, поскольку я хочу иметь доступ к дополнительным программам, доступным на Cygwin, поэтому я установил пакет git для Cygwin, чтобы я мог используйте здесь git и избегайте необходимости переключать оболочки.

Недавно мне нужно было начать использовать git lfs, но он недоступен для Cygwin (по крайней мере, насколько мне известно). Я попытался запустить MinGW-версию git (находится в c: \ Program Files \ Git \ mingw64 \ bin), которая поставляется с git для Windows от Cygwin. Я ожидал, что он не распознает абсолютные пути к файлам Cygwin, поскольку на Cygwin пути выглядят как / cygdrive / c / foo / bar вместо / c / foo / bar, как на MinGW, но, к моему удивлению, он, похоже, работает нормально.

Итак, я думаю, что могу просто удалить cygwin git и поместить версию MinGW на свой путь Cygwin.

Потенциальным преимуществом такой работы является то, что у меня всегда будет доступ к актуальная версия git и его расширений вместо того, чтобы полагаться на то, что доступно для cygwin.

Есть ли какие-либо недостатки в использовании git, подобного этому?

1 Ответ

0 голосов
/ 19 июня 2020

Я считаю, что недостатки незначительны, и сделал это сам. Но у вас есть все стандартные вещи, которые возникают при смешивании Windows с Unix -подобной средой, например:

  • Режимы файлов. MinGW git может думать, что файл исполняемый, тогда как Cygwin git не может, и в репозитории могут оказаться некоторые файлы, помеченные как неисполняемые, когда они должны быть исполняемыми, или наоборот. Я видел ситуации, когда после оформления заказа git думает, что режим файла изменился, хотя это не так. Посмотрите на параметр конфигурации core.filemode, пытаясь решить эту проблему. Если у вас возникнут проблемы, вам может потребоваться установить значение false.
  • Регистр имени файла. Возможно, в конечном итоге вы получите неправильную оболочку вашего репозитория, которая может или не может повлиять на одну версию git иначе, чем на другую. Я никогда не сталкивался с этой проблемой, но похоже, что это может быть возможная проблема. С этим связан параметр конфигурации core.ignorecase, но обычно git устанавливает его правильно для ОС и файловой системы, поэтому обычно вы не должны его изменять. (На Windows это обычно будет true, я думаю, даже с Cygwin.)
  • Окончания строк. Обычно git старается поступать правильно. Но если у вас возникнут проблемы, посмотрите параметр конфигурации core.autocrlf.
...