L'opzione "Usa Git e gli strumenti Unix opzionali dal prompt dei comandi di Windows" è pericolosa?


11

Durante l'installazione di Git, offre la possibilità di aggiungere tutti i suoi strumenti msys * nix nel PERCORSO, tuttavia avverte:

Avviso: questo sostituirà gli strumenti di Windows come "trova" e "ordina". Utilizzare questa opzione solo se si comprendono le implicazioni.

Le mie domande sono:

  • Con quali strumenti sarà esattamente in conflitto?
  • Importa? Sono comunemente usati dal sistema? (Non li ho mai usati personalmente.)
  • Posso semplicemente cambiare l'ordine delle directory nel PERCORSO per prevenire conflitti?
  • È questo che fa la seconda opzione? ("Usa Git dal prompt dei comandi di Windows - Questa opzione è considerata sicura in quanto aggiunge solo alcuni wrapper Git minimi")

Risposte:


4

Sono d'accordo con l'analisi generale delle altre risposte e non sono nemmeno in grado di prevedere esattamente in che tipo di conflitti potresti incorrere. So di non aver notato nulla di strano che io stesso abbia preso la terza opzione. Ma posso aggiungere un po 'a ciò che le opzioni effettivamente fanno dal 2018.

Ho sperimentato una varietà di configurazioni di installazione mentre decidevo come suggerire la transizione del mio team su git, comprese queste opzioni. Questo è ciò che ho effettivamente osservato durante l'installazione del mio percorso, a partire da git per Windows v2.19.1.

screenshot delle opzioni di installazione di Git per Windows per l'impostazione del PERCORSO

Usa Git solo da Git Bash

Come afferma, non vengono apportate modifiche al percorso del sistema. L'immissione di un semplice git statusdal prompt dei comandi di Windows, cmd.exe, non riuscirà 'git' is not recognized as an internal or external command, operable program or batch file.

Usa Git dal prompt dei comandi di Windows

Posso semplicemente cambiare l'ordine delle directory nel PERCORSO per prevenire conflitti?

È questo che fa la seconda opzione? ("Usa Git dal prompt dei comandi di Windows - Questa opzione è considerata sicura in quanto aggiunge solo alcuni wrapper Git minimi")

La modifica dell'ordine è sempre un'opzione per te, ma no, la seconda scelta sembra non avere nulla a che fare con l'ordinazione. (Le aggiunte al percorso sembrano andare alla fine del percorso a prescindere. Sono un po 'sospetto che questo sia cambiato ad un certo punto.) È una questione di quali directory vengono aggiunte al percorso ed è diversa tra la seconda e la terza opzione.

Quando dice che aggiungerà wrapper Git "minimi" al tuo PERCORSO, quello che sembra effettivamente fare è aggiungere la cmdcartella dell'installazione (coming) al percorso. Questa è l'opzione che alla fine ho suggerito alla mia squadra. Ora abbiamo C:\Program Files\Git\cmdsui nostri percorsi.

Cosa c'è nella cmddirectory? Per me, solo sei file:

  • git.exe
  • git-GUI.exe
  • gitk.exe
  • git-lfs.exe
  • start-ssh-agent.cmd
  • start-ssh-pageant.cmd

Come per la risposta di Anaksunaman, non sono sicuro quando questo non sarebbe abbastanza. Tutti i normali comandi che iniziano con git <some command>funzionerebbero dall'inclusione di git.exe.

Usa Git e gli strumenti Unix opzionali dal prompt dei comandi di Windows

Ciò include l'aggiunta della seconda opzione <Install dir>\Git\cmdal percorso, nonché l'aggiunta <Install dir>\Git\mingw64\bine <Install dir>\Git\usr\binil percorso. Entrambe le directory hanno un numero significativo di eseguibili, tra cui find, sort e kill, come indicato in altre risposte.

Invece di elencare quello che probabilmente è un paio di centinaia di voci, incoraggerei l'utente interessato a prendere l'opzione due, completare l'installazione e dare un'occhiata a quelle directory. Se sei soddisfatto del rischio, aggiungere te stesso <Install dir>\Git\mingw64\bine il <Install dir>\Git\usr\bintuo percorso equivarrebbe a riprendere una macchina del tempo e selezionare la terza opzione.


Poiché ipotesi e contesti cambiano nel corso degli anni, può essere utile iniziare una nuova risposta per una domanda di quattro anni con "Ecco una nuova prospettiva dal 2019 ..."
Christopher Hostage,

1
Questa è ancora la domanda più utile sull'argomento, quindi penso che sia rilevante ricevere ulteriori risposte. Ho aggiunto un anno, anche se avrei pensato che il numero di versione avrebbe riempito lo stesso scopo.
ojchase,

7

Con quali strumenti sarà esattamente in conflitto?

Personalmente non sono sicuro di un elenco completo, ma dice questa domanda StackOverflow

"Questo include find, kill e sort [...] Il problema con i primi 3 (e simili) è che esistono in entrambi i sistemi operativi e funzionano in modo diverso in ciascuno di essi."

Potrebbero non essere usati spesso da te, ma sono abbastanza comuni che Git sente il bisogno di avvisarti di comportamenti imprevisti.

Aneddoticamente, è più probabile che appaiano in programmi di terze parti (principalmente script), quindi il livello di effetto molto probabilmente dipende da quanto usi programmi che si basano su uno di questi comandi.

È questo che fa la seconda opzione? ("Usa Git dal prompt dei comandi di Windows - Questa opzione è considerata sicura in quanto aggiunge solo alcuni wrapper Git minimi")

Fondamentalmente ti permette di usare Git dalla riga di comando (cmd.exe) con tutti i comandi Git comuni. Questa opzione è perfettamente sicura e utile per il 99% di ciò che probabilmente vorresti script o implementare manualmente da una riga di comando di Windows. Uso questa opzione e non ho mai riscontrato personalmente alcun problema.

Dopo l'installazione, potresti anche voler guardare un'interfaccia grafica git (come GitHub Dekstop per Windows o SourceTree ) e non dimenticare che anche Git bash viene fornito con l'installazione.


In realtà, vorrei usare alcuni degli strumenti di CMD e mi chiedevo se la seconda opzione rendesse disponibile uno degli strumenti unix o solo git.
Aleksandr Dubinsky,

Per quanto ne sappia, è solo git.
Anaksunaman,

3

Con quali strumenti sarà esattamente in conflitto?

Vorrei che l'installazione modificasse il PERCORSO. È facile rimuoverlo dal PERCORSO se non lo si desidera. Quindi guarderei le directory e fare alcuni confronti come diff, comm, ecc. Per scoprire i conflitti. Dovrebbero essere documentati da qualche parte anche se non so dove.

Importa? Sono comunemente usati dal sistema? (Non li ho mai usati personalmente.)

Ultimamente non ho usato gli strumenti Cygwin, ma quando dovevo usare Windows, di solito avevo la directory degli strumenti Cygwin prima nel mio PERCORSO senza problemi.

Il rischio maggiore sarebbe se un programma cercasse gli strumenti della riga di comando di Windows in conflitto, eseguendo il programma errato. Penso che le possibilità di questo siano molto ridotte, considerando la quantità estremamente piccola di scripting cmd.exe che continua.

Posso semplicemente cambiare l'ordine delle directory nel PERCORSO per prevenire conflitti?

Sì. Basta spostare il cygwin, o qualsiasi altra cosa git, alla fine del PERCORSO. Ricorda solo che alcune sequenze di comandi non funzionano correttamente in Cygwin. Inoltre, vieni a pensarci bene, penso che la console Cygwin abbia impostato correttamente il percorso. Configurare il proprio percorso quando si utilizza cygwin consentirebbe anche a Cygwin di funzionare correttamente.

È questo che fa la seconda opzione? ("Usa Git dal prompt dei comandi di Windows - Questa opzione è considerata sicura in quanto aggiunge solo alcuni wrapper Git minimi")

Sembra che questo inserisca nel PERCORSO una directory contenente solo i comandi git necessari per usare git.


In realtà, git usa MSYS invece di Cygwin. La differenza è che msys è nativo win32, mentre cygwin utilizza una libreria di emulazione per adattare il codice posix.
Aleksandr Dubinsky
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.