¿Cómo inicio una ventana de Git Bash con un directorio de trabajo particular usando un script?

86

¿Cómo puedo iniciar una nueva ventana de Git Bash con un directorio de trabajo específico usando un script (ya sea Bash o lote de Windows)?

Mi objetivo es lanzar múltiples ventanas de Git Bash desde un solo script, cada uno configurado en un directorio de trabajo diferente. De esta manera, puedo ponerme a trabajar rápidamente después de arrancar la computadora en lugar de tener que abrir las ventanas de Git Bash y navegar cada una al directorio de trabajo correcto.

No estoy preguntando cómo cambiar el directorio de trabajo predeterminado, como lo hace esta pregunta , sino para iniciar una o más ventanas de terminal con diferentes directorios de trabajo desde un script.

holocronweaver
fuente
1
@StevenVascellaro Pregunta editada para explicar por qué esto no es un engaño.
holocronweaver
Eso tiene sentido. Me he retractado de mi voto duplicado.
Stevoisiak

Respuestas:

62

Otra opción es crear un atajo con las siguientes propiedades:

ingrese la descripción de la imagen aquí

El objetivo debe ser:

"% SYSTEMDRIVE% \ Archivos de programa (x86) \ Git \ bin \ sh.exe": inicie sesión

Iniciar es la carpeta en la que desea que se inicie el indicador de Git Bash.

Dibujó Noakes
fuente
1
¡Prestigio! Nunca supe Start intuvo algo que ver con el directorio de trabajo en el que un programa cree que está.
CausingUnderflowsEverywhere
Este es el método más sencillo. Luego, fijé ese atajo en la barra de tareas y luego en Windows + 1, lo mantengo como primer elemento de la barra de tareas, abre el repositorio con git-bash directamente.
Hareen Laks
48

Git Bash utiliza cmd.exepara su terminal más extensiones de MSYS / MinGW que son proporcionadas por sh.exeuna especie de cmd.execontenedor. En Windows, inicia una nueva terminal usando el startcomando.

Por lo tanto, un script de shell que lanza una nueva terminal Git Bash con un directorio de trabajo específico es:

(cd C:/path/to/dir1 && start sh --login) &
(cd D:/path/to/dir2 && start sh --login) &

Un script por lotes de Windows equivalente es:

C:
cd \path\to\dir1
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login 
D:
cd \path\to\dir2
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login 

Para obtener la misma fuente y tamaño de ventana que el Git Bash lanzado desde el menú de inicio, es más fácil copiar la configuración del acceso directo del menú de inicio a los valores predeterminados de la consola de comandos (para cambiar los valores predeterminados, abra cmd.exe, haga clic con el botón izquierdo en el icono superior izquierdo y seleccione Valores predeterminados).

holocronweaver
fuente
1
Esto funciona para mí: cdal directorio donde quiero que se inicie Git Bash, y luego ejecutar el startcomando en su ejemplo realmente me dará una terminal Git Bash en ese directorio. ¿Está seguro de que no está haciendo un cd $HOME(o cdsin argumentos) en algún lugar de sus archivos bash rc? (Al igual que .bashrc, .profile, ...) También hay que tener en cuenta la letra de unidad. Si desea iniciar Git Bash en la X:unidad, entonces hacerlo cd x:\pathno será suficiente, debe hacerlo x:y luego cd \pathantesstart
janos
1
¡Tienes razón! Me estaba perdiendo el hecho de que simplemente no puedes cd x:\path. Editaré mi solución en consecuencia.
holocronweaver
¡Una solución perfecta! Permítanme agregar que la cmd.execonfiguración predeterminada no es la misma que la configuración predeterminada de Git Bash en la instalación de Git Bash. Y debe comprender las diferencias entre la configuración predeterminada ( Defaultsdel menú contextual) y la actual ( Properties). Entonces, lo que hice fue: (1) abrir Git Bash, seleccionar Properties(configuración actual), (2) modificarlo, exactamente, lo que quiero (fuente, tamaño de ventana + posición), (3) abrir cmd.exe, seleccionar Defaults, (4 ) copiar y pegar la configuración de Git Bash a cmd.exe. Luego, OKen cmd.exe'configuración, Cancelen Git Bash' s configuración y ¡listo!
trejder
48

Prueba la opción --cd =. Suponiendo que su GIT Bash reside en C: \ Archivos de programa \ Git, sería:

"C:\Program Files\Git\git-bash.exe" --cd="e:\SomeFolder"

Si se usa dentro de la clave de registro, el parámetro de carpeta se puede proporcionar con% 1:

"C:\Program Files\Git\git-bash.exe" --cd="%1"

Mike Kowalski
fuente
¿Cómo usaría el %1parámetro de registro?
Erasmus Cedernaes
1
La respuesta actual es taaan obsoleta, ¡esta debería ser la indicada!
Küzdi Máté
Esto parece mentir para un archivo por lotes. (.bat)
Franta
26

Sumamos aún la respuesta de @Drew Noakes:

Objetivo:

"C:\Program Files\Git\git-bash.exe" --cd=C:\GitRepo

El cdparámetro debe ser una de las opciones para especificar el directorio de trabajo.

También tenga en cuenta que no tengo ningún --loginparámetro allí: en su lugar, uso otra aplicación adicional, dedicada solo para claves SSH: Pageant (agente de autenticación PuTTY) .

Empezar en:

C:\GitRepo

De la misma manera posible, como @Drew Noakes mencionó / ​​mostró aquí antes, yo también lo uso.

Tecla de acceso directo:

Ctrl + Alt + B

Estos atajos son otra característica menos conocida en Windows. Pero hay una restricción: para que el acceso directo surta efecto, debe ubicarse en algún lugar del subdirectorio del usuario: el escritorio está bien.

Si no lo desea visible, pero aún activable, coloque este .lnkarchivo, es decir, en la carpeta de inicio rápido, ya que ese directorio está destinado a tales accesos directos. (no importa si se muestra en el escritorio) # 76080 # 3619355

"\Application Data\Microsoft\Internet Explorer\Quick Launch\"
Franta
fuente
12

Además, Win10 te da la opción de abrir git bash desde tu directorio de trabajo haciendo clic derecho en tu carpeta y seleccionando GitBash aquí.

ingrese la descripción de la imagen aquí

monkrus
fuente
4

Windows 10

Esta es básicamente la respuesta de @ lengxuehx, pero actualizada para Win 10, y asume que su instalación de bash es de Git Bash para Windows desde las descargas oficiales de git .

cmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit

Terminé usando esto después de perder mis elementos del menú contextual para Git Bash como mi comando para ejecutar desde la configuración del registro. En caso de que sienta curiosidad por eso, hice esto:

  1. Cree una nueva clave llamada Bashen la shellclave enHKEY_CLASSES_ROOT\Directory\Background\shell
  2. Agregue un valor de cadena a Icon(¡no una clave nueva!) Que es la ruta completa a su git-bash.exe, incluida la parte git-bash.exe. Es posible que deba envolver esto entre comillas.
  3. Edite el valor predeterminado Bashdel texto que desea usar en el menú contextual ingrese la descripción de la imagen aquí
  4. Agregar una subclave a la Bashllamadacommand
  5. Modificar commandel valor predeterminado acmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit ingrese la descripción de la imagen aquí

Entonces debería poder cerrar el registro y comenzar a usar Git Bash desde cualquier lugar que sea un directorio real. Por ejemplo, This PCno es un directorio real.

ingrese la descripción de la imagen aquí

kayleeFrye_onDeck
fuente
3
Para el registro, la entrada predeterminada de git bash dentro del registro HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\commandes"C:\Program Files\Git\git-bash.exe" "--cd=%v."
Ferrybig
¡Agradable! ¡Gracias, @Ferrybig! ^ _ ^
kayleeFrye_onDeck
4

Este es el comando que se puede ejecutar directamente en Run dialog box(el atajo es win+ R) y también funciona bien guardado como un .batscript:

cmd /c (start /d "/path/to/dir" bash --login) && exit
lengxuehx
fuente
1
ejecuta un nuevo cmd en Windows 10
kyb
1
@kyb se supone que es /bpara Win 10
kayleeFrye_onDeck
@kyb Hice una respuesta que es una modificación de la respuesta de lengxuehx, en caso de que usted o alguien más todavía esté interesado: stackoverflow.com/a/39779451/3543437
kayleeFrye_onDeck
3

No estoy familiarizado con Git Bash, pero asumiendo que es un shell de git (como git-sh) que reside en /path/to/my/gitshelly su programa de terminal favorito se llama `myterm ', puede escribir lo siguiente:

(cd dir1; myterm -e /path/to/my/gitshell) &
(cd dir2; myterm -e /path/to/my/gitshell) &
...

Tenga en cuenta que el parámetro -ede ejecución puede tener un nombre diferente con su programa de terminal favorito.

Marcus Rickert
fuente
Gracias, tu respuesta me hizo pensar en la dirección correcta. Así es como hago las cosas en Linux, pero no pude encontrar el equivalente en MS Windows ... ¡hasta ahora! Para Git Bash, mytermes cmd.exe con adiciones a través de MSYS / MinGW. Para iniciar un nuevo cmd, use el startcomando específico de Windows seguido de la ruta a Git Bash sh.exey luego cualquier opción de línea de comando que desee. Mi respuesta da detalles.
holocronweaver
-1

Podría haber dado una dirección equivocada, pero me gusta este truco.

Usando el Explorador de Windows, señalando cualquier directorio que desee, escriba "cmd" en la barra de direcciones y se abrirá el símbolo del sistema de Windows en ese directorio.

Si tiene el directorio "Git" en su ruta, de la misma manera, puede escribir "git-bash" en la barra de direcciones y se abrirá un Git Shell en ese directorio.

Adauto Bronzatti
fuente