Domanda

Ciò è correlato a un'altra domanda che ho posto di recente.

Durante l'installazione di msysgit, il programma di installazione presenta 3 opzioni relative al percorso di sistema:

  1. Non modificare mai l'ambiente Windows. Con questa opzione, devi utilizzare " bash " shell per funzionare con git.

  2. Aggiungi la directory git \ bin alla variabile d'ambiente PATH, ma senza sovrascrivere alcuni strumenti di Windows integrati. Fellow stackoverflow-ian Gabe Moothart mi ha detto in un commento che questa opzione renderà alcune operazioni git falliscono! Quali sono queste operazioni? Dovrei preoccuparmi per loro?

  3. Come 2 ma sovrascrive alcuni strumenti di sistema predefiniti. Quali sono questi strumenti? Quali parti di Windows dipendono da loro? e questo farà male in pratica?

Un altro problema mi è venuto in mente, non correlato al sistema PATH.

Cosa succede se ho collegamenti simbolici e collegamenti reali nella directory del mio progetto? Git sa come gestirli? o subirà una ricorsione infinita, se diciamo, la struttura delle directory era tale che una cartella era in realtà un collegamento simbolico con uno dei suoi genitori?

È stato utile?

Soluzione

Ottieni bash indipendentemente dall'opzione scelta, queste ultime aggiungono solo metodi per usare Git al di fuori di esso.

Per le ultime opzioni, msysgit aggiunge le build di Windows delle utility Linux comuni a PATH . Ciò include find , kill e sort , così come cp , ls , rm e circa altri 20-30.

Il problema con i primi 3 (e simili) è che esistono in entrambi i sistemi operativi e funzionano in modo diverso in ciascuno di essi.

Non è un grande calvario se sai quale utilizzerai, ma tutte le applicazioni sviluppate che si aspettano l'una e ottengono l'altra andranno sicuramente incontro.


Per prevenire il conflitto, pur facendo funzionare Git come previsto, puoi creare un semplice script batch che regola PATH solo per la sessione. (ad es. readygit.bat )

@echo off
setlocal
set PATH=C:\Git\bin;%PATH%
cmd

Regola C: \ Git \ bin di conseguenza. Ma eseguilo e usa Git nel cmd .

Con questo, puoi usare l'opzione di installazione 3 e rimuovere in sicurezza C: \ Git \ bin dal PATH del tuo sistema, rimuovendo ogni confusione per le app di Windows senza confondere Git.

Attualmente utilizzo uno script simile con GnuWin , tra cui < strong> find .

Altri suggerimenti

Potresti voler sapere che:

  • Tutti i comandi git non sono ancora presenti. Su MSysGit1.6.2 all'inizio di marzo 2009: archimport, cvsexportcommit, cvsimport, cvsserver, filtro-branch, instaweb, send-email e shell.)

  • Fino a MSysGit1.6.2, git-svn era non lì ( ora è ).
    Il problema era che git-svn aveva bisogno dei binding perl di Subversion e puoi costruirli solo come moduli caricabili dinamicamente. E MSysGit aveva una versione perl che non supportava moduli caricabili dinamicamente.

  • Tutti i dettagli su MSysGit sono meglio spiegati nella loro MSysGitHerald Github wiki

Su Windows (questo è meno un problema su altri sistemi, a mio modestissimo parere ...), devi essere MOLTO consapevole dei problemi di crlf e notare che (A meno che non lo abbiano cambiato nell'ultima versione di Git, che credo possano avere - o se stai usando una versione molto vecchia di Git), autocrlf è abilitato di default, a differenza di tutte le altre installazioni di git.

Si noti inoltre che, a meno che non si usi l'ultima versione di msysgit, presto uscirà questa settimana se ricordo bene dalla mailing list, la dimensione del repository non può essere superiore a 2 GB, in totale.

Inoltre, Windows fa distinzione tra maiuscole e minuscole ma / a volte / preserva le custodie - tienilo a mente! (Questo non confonde necessariamente git - ma può e confonde l'utente del repository git).

Infine, git è sostanzialmente più lento su Windows rispetto a Linux, anche se (nella mia esperienza limitata) è più veloce delle alternative.

Ora, per quanto riguarda il percorso ...

A meno che non mi sbagli, dovresti essere in grado di assicurarti solo che il binario git principale sia nel percorso - e che il binario dovrebbe quindi occuparsi di fare riferimento agli altri componenti git ... Ma non ho testato questo.

Il programma di installazione di MSYS Git suggerisce l'opzione 2 se si intende eseguire git da un prompt di cygwin. L'ambiente cygwin garantisce che le dipendenze git siano nel tuo PERCORSO. Se si sceglie questa opzione ma poi si richiama git dal prompt dei comandi di Windows, tutte le utilità della riga di comando unix-y su cui si basa git non verranno trovate. IIRC, git stesso è parzialmente implementato come script bash. Non so quali operazioni falliranno, ma non credo che git sarà utilizzabile in questo modo.

Non ho un elenco degli strumenti di sistema che l'opzione 3 ha la precedenza (il programma di installazione menziona find.exe), ma ciò influirebbe solo se sei un ninja di script batch. Alla riga di comando, find farà ora riferimento all'utilità unix con quel nome, non all'exe fornito con windows. Non danneggia in alcun modo Windows stesso.

Basta correre con le forbici e scegliere l'opzione 3 :-)

Quando usi la GUI di Windows su Windows e crei il tuo primo repository, non digitare il nome " .git " per la directory del repository. (Che poi creerà, e quindi creerà un'altra cartella .git sotto di essa, quando finalmente penserai di guardare lì) Naviga nella cartella con le tue fonti al suo interno e - scegli quella cartella! La directory del repository " .get " sarà creato PER TE.

Quindi vedi i file nelle modifiche non messe in scena e facendo clic sulle icone della piccola pagina accanto ai nomi dei file, spostali nelle modifiche organizzate.

E sicuramente corri con le forbici e seleziona l'opzione 3. Nessuno usa più kill, ordina o trova dalla riga di comando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top