2011-03-04 7 views
19

Nel mio lavoro quotidiano (sto usando MS Windows), tengo il mio git bash (effettivamente usando console2 per questo) aperto per l'intera giornata. È anche molto frequente che monti nuove unità che mi piacerebbe lavorare con git. Tuttavia ho notato che ho bisogno di uscire dalla bash e aprirlo di nuovo per far sì che riconosca la nuova lettera di unità.Come registrare l'unità appena montata in git bash?

Esiste un comando che registri l'unità già montata in git bash? grazie

EDIT2: Non ho alcuna opzione per lasciato un commento sotto la mia domanda, così ho posto qui (strano ..?):

$ mount -a 
sh.exe": mount: command not found 
+0

Quando si dice "lettera di unità" che implica Windows. È questo il caso? Immagino che "console2" implichi anche questo. –

+3

Sì, la porta di Windows di git è costruita in cima all'emulazione di 'msys' in seguito (simile nello spirito a Cygwin, ma un'implementazione distinta). 'msys' ha il suo modo di rappresentare le unità di Windows; per esempio, ciò che Windows chiama 'C: \', msys chiama '/ c' (e Cygwin chiama'/cygwin/c'). Apparentemente montare una nuova unità Windows, ad esempio 'X: \', non la rende automaticamente visibile come '/ X'. –

+0

In realtà ho lo stesso problema. Ho il mio work in progress in un file di Truecrypt. Se avvio prima git bash e poi montiamo il file Truecrypt su, ad esempio, 'Y:', non riesco a fare 'cd/y'. – Christoffer

risposta

18

paio di cose, ha avuto qualche difficoltà trovando le fonti, sentitevi liberi di prenderle con un pizzico di sale.

  1. Msysgit semplicemente non include una versione di mount. Sono a conoscenza del fatto che lo standard cygwin, tuttavia. Non esiste un modo semplice per visualizzare tutte le unità collegate o montare una nuova unità in msys, e quindi Git Bash.

Per rispondere alla tua domanda, non lo fai: Git Bash non assegna dinamicamente le unità, quindi se si monta nuove unità, è necessario chiudere tutte le istanze e riavviare Git Bash (source). La fonte a cui si fa riferimento è la cache here. Spiacente, non c'è una soluzione migliore.

+8

Chiudere tutte le istanze era la chiave.Ho provato a riavviare git bash, ma non ha funzionato perché avevo un'altra finestra aperta – NickSoft

+0

Chiudere tutte le istanze e riavviare Git Bash non ha funzionato per me La ragione potrebbe essere che sto montando immagini TrueCrypt invece di unità fisiche. –

+1

Ho dovuto andare nel Task Manager e cercare tutti i processi 'git.exe' e' sh.exe'. Ho chiuso tutte le finestre, ho avuto alcuni processi persistenti che dovevano essere rimossi. – CEPA

0

ho comunemente montare un'unità al file system e quindi devono eseguire uno script che altera alcuni file sul dall'interno di una sessione di Git Bash in Console 2.

Se si monta qualcosa a un determinato lettera di unità, Dite F: sul file system di Windows, quindi avviate la sessione di Git Bash per farla mappare. Posso montare/smontare l'unità F: e la sessione può ancora accedere a/f/senza problemi. Quindi, montare tutte le unità che in genere è necessario colpire e quindi avviare la sessione e si spera che non sia necessario riavviare troppo spesso Git Bash.

0

Trovo che se esco da tutte le sessioni git bash in esecuzione e ne lancio una nuova, posso accedere alla nuova unità, ad es. X :, nella nuova sessione di bash sotto /x/.

Anche lanciare una nuova sessione di git bash non è sufficiente se ce ne fosse già una in esecuzione; Devo uscire dalle precedenti sessioni di git bash e quindi avviarne uno per rendere disponibili le nuove lettere di unità.

-1

ho scoperto che se ho impostato

MSYS_WATCH_FSTAB = YesPlease

nelle mie variabili di ambiente utente. Quindi tutto ha funzionato.

Problemi correlati