Опасен ли параметр «Использовать Git и дополнительные инструменты Unix из командной строки Windows»?

11

При установке Git, он предлагает возможность добавить все свои инструменты msys * nix в вашу PATH, однако предупреждает:

Предупреждение: это переопределит инструменты Windows, такие как «найти» и «сортировать». Используйте эту опцию, только если вы понимаете последствия.

Мои вопросы:

  • С какими инструментами он будет конфликтовать?
  • Это имеет значение? Они обычно используются системой? (Я никогда не использовал их лично.)
  • Могу ли я просто изменить порядок каталогов в PATH, чтобы предотвратить конфликты?
  • Это то, что делает второй вариант? («Использовать Git из командной строки Windows - этот параметр считается безопасным, поскольку он добавляет только некоторые минимальные оболочки Git»)
Александр Дубинский
источник

Ответы:

4

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

Я экспериментировал с различными конфигурациями установки, решая, как предложить моей команде переход на git, включая эти опции. Это то, что я на самом деле наблюдал, как установка выполняла мой путь, как в git для Windows v2.19.1.

снимок экрана с вариантами установки Git For Windows для настройки PATH

Используйте Git только из Git Bash

Как говорится, никаких изменений в пути вашей системы не производится. Ввод простой git statusкомандной строки Windows, cmd.exe, не удастся выполнить 'git' is not recognized as an internal or external command, operable program or batch file.

Используйте Git из командной строки Windows

Могу ли я просто изменить порядок каталогов в PATH, чтобы предотвратить конфликты?

Это то, что делает второй вариант? («Использовать Git из командной строки Windows - этот параметр считается безопасным, поскольку он добавляет только некоторые минимальные оболочки Git»)

Изменение заказа всегда является для вас вариантом, но нет, второй вариант, похоже, не имеет ничего общего с заказом. (Кажется, что дополнения к пути идут до конца пути. Я немного подозреваю, что в какой-то момент это изменилось.) Вопрос в том, какие каталоги добавляются к пути, и отличается ли он во втором и третьем параметрах.

Когда он говорит, что добавит «минимальные» обертки Git к вашей переменной PATH, то, что он, по-видимому, на самом деле делает, это добавляет cmdпапку (предстоящей) установки в путь. Это вариант, который я в конечном итоге предложил своей команде. Теперь у нас C:\Program Files\Git\cmdна пути.

Что в cmdкаталоге? Для меня всего шесть файлов:

  • git.exe
  • ГИТ-gui.exe
  • gitk.exe
  • ГИТ-lfs.exe
  • запуск SSH-agent.cmd
  • запуск SSH-pageant.cmd

Как и в случае с ответом Анаксунамана, я не уверен, когда этого будет недостаточно. Любая из нормальных команд, начинающихся с, git <some command>будет работать с включением git.exe.

Используйте Git и дополнительные инструменты Unix из командной строки Windows

Это включает в себя добавление второй опции <Install dir>\Git\cmdк пути, а также добавляет <Install dir>\Git\mingw64\binи <Install dir>\Git\usr\binк пути. Оба каталога имеют значительное количество исполняемых файлов, включая поиск, сортировку и уничтожение, как указано в других ответах.

Вместо того, чтобы перечислять, что, вероятно, пару сотен элементов, я бы посоветовал заинтересованному пользователю выбрать второй вариант, завершить установку и взглянуть на эти каталоги. Если вы удовлетворены с риском, добавляя <Install dir>\Git\mingw64\binи <Install dir>\Git\usr\binв путь самостоятельно будет эквивалентно принимать машины обратно времени и выбрав третий вариант.

ojchase
источник
Поскольку предположения и контексты меняются с годами, может быть полезно начать новый ответ на четырехлетний вопрос с «Вот новая перспектива с 2019 года ...»
Кристофер
1
Это по-прежнему самый полезный вопрос по теме, поэтому я думаю, что важно получить дополнительные ответы. Я добавил год, хотя я бы подумал, что номер версии будет соответствовать той же цели.
ojchase
7

С какими инструментами он будет конфликтовать?

Лично я не уверен в полном списке, но этот вопрос StackOverflow говорит

«Это включает в себя поиск, уничтожение и сортировку [...] Проблема с первыми тремя (и аналогичными) заключается в том, что они существуют в обеих ОС и функционируют по-разному в каждой».

Они могут использоваться не часто вами, но достаточно часто, чтобы Git чувствовал необходимость предупреждать вас о неожиданном поведении.

Как ни странно, они чаще появляются в сторонних программах (в основном, в скриптах), поэтому уровень эффекта, скорее всего, зависит от того, насколько вы используете программы, использующие любую из этих команд.

Это то, что делает второй вариант? («Использовать Git из командной строки Windows - этот параметр считается безопасным, поскольку он добавляет только некоторые минимальные оболочки Git»)

В основном это позволяет вам использовать Git из командной строки (cmd.exe) со всеми распространенными командами Git. Эта опция совершенно безопасна и полезна для 99% того, что вы, вероятно, захотите написать в сценарии или реализовать вручную из командной строки Windows. Я использую эту опцию и никогда лично не сталкивался с какими-либо проблемами.

После установки вы, возможно, захотите взглянуть на графический интерфейс git (например, GitHub Dekstop для Windows или SourceTree ) и не забудьте, что Git bash поставляется вместе с установкой.

Anaksunaman
источник
На самом деле, я хотел бы использовать некоторые инструменты из CMD, и мне было интересно, если второй вариант делает какие-либо инструменты Unix доступными или только git.
Александр Дубинский
Насколько мне известно, это только мерзавец.
Анаксунаман
3

С какими инструментами он будет конфликтовать?

Я бы позволил установке изменить ваш путь. Его легко удалить из PATH, если вы этого не хотите. Затем я бы посмотрел на каталоги и сделал несколько сравнений, таких как diff, comm и т. Д., Чтобы выяснить конфликты. Они должны быть задокументированы где-то, хотя я не знаю где.

Это имеет значение? Они обычно используются системой? (Я никогда не использовал их лично.)

В последнее время я не использовал инструменты cygwin, но когда мне приходилось использовать Windows, я обычно без проблем сначала находил каталог инструментов cygwin в PATH.

Самый большой риск был бы, если бы программа искала конфликтующие инструменты командной строки Windows, она выполнила бы неправильную программу. Я думаю, что шансы на это очень малы, учитывая крайне небольшое количество сценариев cmd.exe, которые продолжаются.

Могу ли я просто изменить порядок каталогов в PATH, чтобы предотвратить конфликты?

Да. Просто переместите Cygwin, или что-то еще gitдобавляет, в конец PATH. Просто помните, что некоторые последовательности команд не будут работать правильно в Cygwin. Кроме того, если подумать, я думаю, что консоль Cygwin правильно устанавливает путь. Настройка собственного пути при использовании cygwin также заставит cygwin работать правильно.

Это то, что делает второй вариант? («Использовать Git из командной строки Windows - этот параметр считается безопасным, поскольку он добавляет только некоторые минимальные оболочки Git»)

Звучит так, как будто это вставит в PATH каталог, содержащий только команды git, которые вам нужны для использования git.

RobertL
источник
На самом деле, Git использует MSYS вместо Cygwin. Разница в том, что msys является родным win32, а cygwin использует библиотеку эмуляции для адаптации кода posix.
Александр Дубинский