Чи небезпечна опція "Використовувати Git та додаткові інструменти Unix з командного рядка Windows"?


12

Встановлюючи Git, він пропонує можливість додати всі свої msys * nix інструменти у свій PATH, однак він попереджає:

Попередження: Це скасує такі інструменти Windows, як "знайти" та "сортувати". Використовуйте цю опцію, лише якщо ви розумієте наслідки.

Мої запитання:

  • З якими інструментами він точно конфліктуватиме?
  • Це важливо? Чи часто вони використовуються системою? (Я ніколи не використовував їх особисто.)
  • Чи можу я просто змінити порядок каталогів у PATH, щоб запобігти конфліктам?
  • Це те, що робить 2-й варіант? ("Використовувати Git з командного рядка Windows - ця опція вважається безпечною, оскільки додає лише мінімальні обгортки Git")

Відповіді:


5

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

Це те, що робить 2-й варіант? ("Використовувати Git з командного рядка Windows - ця опція вважається безпечною, оскільки додає лише мінімальні обгортки Git")

Зміна замовлення - це завжди варіант для вас, але ні, другий вибір, як видається, не має нічого спільного з замовленням. (Додавання шляху, здається, йдуть до кінця шляху незалежно. Я трохи підозріло, що це змінилося в якийсь момент.) Це питання, які каталоги додаються до шляху, і чим відрізняється другий та третій варіанти.

Коли він говорить, що додасть «мінімальні» обгортки Git до вашого PATH, те, що, як видається, насправді - це додавання до шляху cmdпапки (що настає) установки. Це варіант, який я врешті запропонував своїй команді. Зараз ми маємо C:\Program Files\Git\cmdна своєму шляху.

Що в cmdкаталозі? Для мене лише шість файлів:

  • git.exe
  • git-gui.exe
  • gitk.exe
  • git-lfs.exe
  • start-ssh-agent.cmd
  • start-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власний шлях буде рівнозначним поверненню машини часу та вибору третього варіанту.


Оскільки припущення та контексти змінюються з роками, може бути корисним почати нову відповідь на чотирирічне питання із "Ось нова перспектива з 2019 року ..."
Крістофер Заручник

1
Це все-таки найкорисніше питання в цій темі, тому я вважаю, що доречно отримати додаткові відповіді. Я додав рік, хоча я б подумав, що номер версії виконав би ту саму мету.
ojchase

7

З якими інструментами він точно конфліктуватиме?

Особисто я не впевнений у повному переліку, але це питання StackOverflow говорить

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

Вони можуть не часто використовуватися вами, але досить поширені, щоб Git відчував потребу попередити вас про несподівану поведінку.

Анекдотично вони частіше з’являються у сторонніх програмах (переважно скриптах), тому рівень ефекту, швидше за все, залежить від того, наскільки ви використовуєте програми, які покладаються на будь-яку з цих команд.

Це те, що робить 2-й варіант? ("Використовувати Git з командного рядка Windows - ця опція вважається безпечною, оскільки додає лише мінімальні обгортки Git")

В основному це дозволяє використовувати Git з командного рядка (cmd.exe) з усіма загальними командами Git. Цей параметр є абсолютно безпечним і корисним для 99% того, що ви, ймовірно, хочете скриптувати або вручну реалізувати з командного рядка Windows. Я використовую цю опцію і жодного разу особисто не стикався з жодними проблемами.

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


Насправді, я хотів би скористатися деякими інструментами CMD і поцікавився, чи 2-й варіант робить будь-який із інструментів Unix доступним або лише git.
Олександр Дубінський,

Наскільки мені відомо, це лише git.
Anaksunaman

3

З якими інструментами він точно конфліктуватиме?

Я б дозволив установці змінити ваш PATH. Видалити його з PATH легко, якщо ви цього не хочете. Тоді я б переглянув каталоги та провів деякі порівняння, такі як diff, comm тощо, щоб з’ясувати конфлікти. Вони повинні бути десь задокументовані, хоча я не знаю, де.

Це важливо? Чи часто вони використовуються системою? (Я ніколи не використовував їх особисто.)

Останнім часом я не використовував інструменти cygwin, але коли мені доводилося користуватися Windows, у мене зазвичай без проблем був каталог інструментів cygwin.

Найбільшим ризиком було б, якби програма шукала конфліктуючі засоби командного рядка Windows, вона виконала б неправильну програму. Я думаю, що шанси на це дуже малі, враховуючи надзвичайно малу кількість сценаріїв cmd.exe, яка продовжується.

Чи можу я просто змінити порядок каталогів у PATH, щоб запобігти конфліктам?

Так. Просто перемістіть cygwin або все, що gitдодає, до кінця PATH. Пам'ятайте лише, що певні командні послідовності не працюватимуть належним чином у cygwin. Крім того, придумайте це, я думаю, що консоль cygwin правильно налаштовує шлях. Налаштування власного шляху, коли ви використовуєте cygwin, також змусить cygwin працювати правильно.

Це те, що робить 2-й варіант? ("Використовувати Git з командного рядка Windows - ця опція вважається безпечною, оскільки додає лише мінімальні обгортки Git")

Здається, що це вставило б у каталог PATH каталог, що містить лише команди git, які потрібно використовувати git.


Власне, git використовує MSYS замість Cygwin. Різниця полягає в тому, що msys - це власний win32, тоді як cygwin використовує бібліотеку емуляції для адаптації коду posix.
Олександр Дубінський,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.