2011-03-04 8 views
19

En mi trabajo diario (estoy usando MS Windows), mantengo mi git bash (en realidad usando console2 para esto) abierto durante todo el día. También es muy frecuente que monte nuevas unidades que me gustaría trabajar con git. Sin embargo, me di cuenta de que tengo que salir del bash y abrirlo de nuevo para que reconozca la nueva letra de unidad.¿Cómo registrar la unidad recientemente montada en git bash?

¿Hay algún comando que 'registre' la unidad ya montada en git bash? gracias

Edit2: no tengo ninguna opción a la izquierda un comentario debajo de mi propia pregunta, así que puesto aquí (raro ..?):

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

Cuando dice "letra de unidad" que implica Windows. Es ese el caso? Supongo que "consola2" también implica que. –

+3

Sí, el puerto de Windows de git se basa en la emulación 'msys' posterior (similar en espíritu a Cygwin, pero una implementación distinta). 'msys' tiene su propia forma de representar las unidades de Windows; por ejemplo, lo que Windows llama 'C: \', msys llama '/ c' (y Cygwin llama'/cygwin/c'). Al parecer, montar una nueva unidad de Windows, digamos 'X: \', no la hace automáticamente visible como '/ X'. –

+0

En realidad tengo el mismo problema. Tengo mi trabajo en progreso en un archivo Truecrypt. Si comienzo git bash primero y luego monté el archivo Truecrypt en, por ejemplo, 'Y:', no puedo hacer 'cd/y'. – Christoffer

Respuesta

18

par de cosas, tenía cierta dificultad encontrar fuentes así que siéntete libre de tomarlo con un grano de sal.

  1. Msysgit simplemente no incluye una versión de mount. Tengo entendido que cygwin sí lo hace. No hay una forma simple de ver todas las unidades conectadas o montar una nueva unidad en msys, y por lo tanto, Git Bash.

Para responder a su pregunta, no lo hace: Git Bash no asigna dinámicamente unidades, por lo que si monta nuevas unidades, es necesario cerrar todas las instancias y reiniciar Git Bash (source). La fuente a la que se hace referencia allí se almacena en la memoria caché here. Lo siento, no hay una mejor solución.

+8

El cierre de TODAS las instancias fue la clave. Intenté reiniciar git bash, pero no funcionó porque tenía otra ventana abierta. – NickSoft

+0

Cerrar todas las instancias, y reiniciar Git Bash no funcionó para mí La razón podría ser que estoy montando imágenes Truecrypt en lugar de unidades físicas. –

+1

Tenía que entrar en el administrador de tareas y buscar todos los procesos 'git.exe' y' sh.exe'. Aunque tengo Cerré todas las ventanas, tuve algunos procesos persistentes que necesitaban ser eliminados. – CEPA

0

que comúnmente montar una unidad al sistema de archivos y luego tener que ejecutar un script que altera algunos archivos en el desde la sesión de Git Bash en la consola 2.

Si monta algo a una letra de unidad dada, di F: en el sistema de archivos de Windows, y luego inicia la sesión de Git Bash, lo mapeará. Puedo montar/desmontar la unidad F: y la sesión todavía puede acceder a/f/sin ningún problema. Por lo tanto, monte todas las unidades que normalmente necesitará para golpear y luego inicie la sesión y, con suerte, no necesita reiniciar su Git Bash con demasiada frecuencia.

0

Me parece que si salgo de todas las sesiones de git bash que se están ejecutando actualmente y luego lanzo una nueva, entonces puedo acceder a la nueva unidad, p. X :, en la nueva sesión bash bajo /x/.

Incluso el lanzamiento de una nueva sesión de git bash no es suficiente si ya había una ejecutándose; Debo salir de las sesiones anteriores de git bash y luego lanzar una para que las nuevas letras de unidad estén disponibles.

-1

He descubierto que si fijo

MSYS_WATCH_FSTAB = YesPlease

en mi variables de entorno de usuario. Entonces todo funcionó.

Cuestiones relacionadas