2009-03-08 5 views
39

Questo è collegato ad un altro question I asked di recente.msysgit su windows - di cosa dovrei essere a conoscenza, se esiste?

Quando si installa msysgit, il programma di installazione presenta 3 opzioni relative al percorso di sistema:

  1. mai cambiare ambiente Windows. Con questa opzione, devi usare la shell "bash" per lavorare con git.

  2. Aggiungere la directory git \ bin alla variabile di ambiente PATH, ma senza sovrascrivere alcuni strumenti di Windows incorporati. Fellow stackoverflow-ian Gabe Moothart told me in a comment che questa opzione farà fallire alcune operazioni git! Quali sono queste operazioni? Dovrei preoccuparmi di loro?

  3. Uguale a 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 all'interno della directory del progetto sono presenti collegamenti simbolici e collegamenti rigidi? Git sa come comportarsi con questi? o, soffrirà di ricorsione infinita, se la struttura della directory fosse tale che una cartella fosse in realtà un collegamento simbolico a uno dei suoi genitori?

risposta

43

Si ottiene bash indipendentemente da quale opzione si sceglie, queste ultime opzioni è sufficiente aggiungere i metodi per l'utilizzo di Git di fuori di esso.

Per queste ultime opzioni, msysgit aggiunge di Windows si basa su programmi di utilità comuni Linux per PATH. Questo include find, kill e sort, così come cp, ls, rm, e circa 20-30 altri.

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

Non è un'enorme prova se si sa quale si utilizzerà, ma tutte le applicazioni sviluppate si aspettano una soluzione e l'altra sicuramente farà un tentativo.


Per evitare il conflitto, pur avendo lavoro Git come previsto, è possibile creare un semplice script batch che regola PATH solo per la sessione. (Ad esempio, readygit.bat)

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

Regolare C:\Git\bin conseguenza. Ma eseguilo e usa Git all'interno dello cmd.

Con questo, è possibile utilizzare l'opzione di installazione 3 e rimuovere in modo sicuro C:\Git\bin dal sistema PATH, eliminando qualsiasi confusione per le app di Windows senza confondere Git.

Attualmente utilizzo uno script simile con le app GnuWin, incluso find.

+2

In alternativa, aggiungi 'export PATH = $ PATH:/c/mingw/bin:/c/mingw/msys/1.0/bin' a Git Bash'/etc/bash_profile' per accedere a MinGW dalla shell di msysGit. – rpjohnst

3

Su Windows (questo è meno di un problema su altri sistemi, secondo il mio modesto parere ...), devi essere MOLTO consapevole dei problemi di crlf, e nota che (a meno che non lo abbiano cambiato nel più recente versione di Git, che credo possano avere - o se stai usando una versione molto vecchia di Git), autoclf è abilitato di default, a differenza di tutte le altre installazioni git.

Si noti inoltre che a meno che non si utilizzi la versione più recente di msysgit, che presto sarà fuori questa settimana se ricordo correttamente dalla mailing list, la dimensione del repository non può essere superiore a 2 GB, totale.

Inoltre, Windows non è particolarmente sensibile alle maiuscole e alle minuscole, ma/a volte/conserva le maiuscole/minuscole - tenetelo a mente! (Questo non confonde git necessariamente - ma può e non confonde l'utente del repository git).

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

Ora, per quanto riguarda il percorso ...

A meno che non mi sbaglio, si dovrebbe essere in grado di garantire solo che il git principale binario è nel percorso - e che binari dovrebbero quindi si prenderà cura referenziare l'altra componenti git ... Ma non ho provato questo.

+2

AFAIK, Windows è sempre custodia. Quando un nome è tutto maiuscolo, Windows Explorer lo mostra in minuscolo, ma il file viene mantenuto come maiuscolo. – configurator

+0

Questo è sbagliato, ma sarebbe utile se hai trovato articoli di supporto. :) – Arafangion

3

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

Non ho una lista degli strumenti di sistema che l'opzione 3 prevale (il programma di installazione menziona find.exe) ma questo avrebbe effetto solo se sei un ninja batch-script. Alla riga di comando, find farà ora riferimento all'utilità unix di tale nome, non all'exe che viene fornito con Windows.Non danneggia le finestre in alcun modo.

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

+0

Ciò influirebbe sui ninja non-batch-script se utilizzano uno strumento fornito con script batch. Ho usato troppi strumenti come questo, che probabilmente fallirebbero. – configurator

9

Si consiglia di essere consapevole del fatto che:

  • Tutti i comandi git non sono ancora lì. Su MSysGit1.6.2 primi di marzo 2009:. Archimport, cvsexportcommit, cvsimport, cvsserver, filtro-ramo, instaweb, inviare e-mail, e Shell)

  • Fino MSysGit1.6.2, git-svn era not there (it is now).
    Il problema era git-svn necessari i collegamenti perl di subversion, e puoi solo costruirli come moduli caricabili dinamicamente. E MSysGit aveva una versione perl che non supportava i moduli caricabili dinamicamente.

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

0

Quando si utilizza la GUI di Windows su Windows e si crea il primissimo repository, non digitare il nome ".git" per la directory del repository. (Che verrà quindi creato e quindi crearne un altro.git cartella sotto di esso, quando finalmente pensi di guardare lì) Sfoglia la cartella con le tue fonti al suo interno, e - basta scegliere quella cartella! La directory del repository ".get" verrà creata per te.

Quindi si vedono i file nelle modifiche non modificate e facendo clic sulle icone della pagina accanto ai nomi dei file, spostarli nelle modifiche graduali.

E sicuramente eseguire con le forbici e selezionare l'opzione 3. Nessuno usa uccidere, ordinare o trovare più dalla riga di comando di Windows.

+0

hmm, questo non ha nulla a che fare con msysgit su windows (come questo vale anche per Linux). Stavo chiedendo dei modi in cui potrebbe interferire con altri strumenti di sistema di Windows o in altro modo. – hasen

Problemi correlati