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

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

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

Мои вопросы:

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

3 ответа

Решение

Я согласен с общим анализом других ответов и также не могу точно предсказать, с какими конфликтами вы можете столкнуться. Я знаю, что ничего не заметил, выбрав третий вариант. Но я могу немного добавить к тому, что на самом деле делают варианты с 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 на вашем пути было бы равносильно возвращению машины времени и выбору третьего варианта.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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