¿Cómo iniciar Git Bash desde la línea de comandos de DOS?


106

Tengo lo que espero sea una pregunta simple, pero aún no he podido encontrar la respuesta. Me gustaría iniciar Git Bash desde un archivo por lotes de DOS. Esto es lo que intenté hasta ahora:

  1. Lanzamiento de Git Bash desde el botón de inicio de Win 7
  2. Usó CTRL + ALT + SUPR para identificar el proceso como "sh.exe"
  3. Se lanzó sh.exe desde un archivo por lotes usando el comando de inicio

    start sh.exe
    

Sin embargo, esto no inicia el entorno completo de Git Bash. Git Bash por lo general tiene "mingw32" en la barra de título, pero sh.exe tiene una ruta completa ... Git\bin\sh.exe. Me parece que hay algunas superposiciones o dependencias que posiblemente no conozco, que también deben cargarse (¿extraerlas? ¿Importar?).

Este fue uno de los mejores resultados que encontré al buscar en la web, pero no tiene mucho sentido para mí y no estoy seguro de si se aplica exactamente a mi situación:

Ejecutando git desde la línea Cmd de Windows: ¿Dónde están los archivos clave?

Soy un principiante en el mundo de las secuencias de comandos por lotes de DOS.


1
Bueno, en realidad no es la línea de comandos de DOS a menos que: (a) Se haya encontrado con algún tipo de anomalía de tiempo y esté usando Windows 9x / ME, donde command.comestá el único shell incluido con el SO (b) Está en un 32- bit NT y lo invocó command.comusted mismo, o un programa antiguo lo hizo por usted. Consulte ¿Cuál es la diferencia entre CMD y el símbolo del sistema en Windows? para más información.
SamB

Respuestas:


125

Si desea iniciar desde un archivo por lotes:

  • para x86

    start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login
    
  • para x64

    start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login
    

¡Gracias @Endoro! Aunque la respuesta de @Klas Mellbourn fue correcta para Powershell, la suya es más correcta ya que estoy ejecutando desde un archivo por lotes de DOS. La adición de la directiva "start" hace que el programa se ejecute de forma asincrónica, ¡que es exactamente lo que necesito! ¡Pulgares hacia arriba!
Eric Hepperle - CodeSlayer2010

14
¿Hay alguna manera de escribir y ejecutar un comando en la ventana por lotes de Git después de que se abra desde el archivo por lotes?
Nick

1
@OviC ¿Estás seguro de que tu edición es correcta? "Archivos de programa (x86)" solo existe en la arquitectura x64 para programas de 32 bits.
Drunix

@Drunix tiene razón, no hay una ruta de "Archivos de programa (x86) \" en los sistemas x86. Hice una reversión. Gracias.
Endoro

¿Qué pasa si no está instalado en la unidad del sistema? ¿Qué pasa si no está instalado en archivos de programa?
Michael Kruglos

44

No estoy seguro de a qué te refieres con "entorno completo de Git Bash", pero recibo un mensaje agradable si lo hago

"C:\Program Files\Git\bin\sh.exe" --login

En PowerShell

& 'C:\Program Files\Git\bin\sh.exe' --login

El --loginconmutador hace que el shell ejecute los archivos de inicio del shell de inicio de sesión .


Gracias @Klas Mellbourn. Su respuesta es buena para Powershell, pero sin la adición de la directiva "start" como en la respuesta de Endoro, detiene la ejecución del siguiente programa hasta que se sale del shell, que no es el comportamiento deseado, de lo contrario, lo habría votado a favor.
Eric Hepperle - CodeSlayer2010

Utilizo Console2 para abrir la ventana cmdy esto provoca un comportamiento extraño. Puse esto en un archivo .bat y ahora todo está bien:@"%SYSTEMDRIVE%\Program Files\Git\bin\bash.exe" --login
Grault

25

Prefiero usar git-bash.exe en lugar de sh.exe.

start "" "%ProgramFiles%\Git\git-bash.exe" -c "tail -f /c/Windows/win.ini"

Puede dejar de cerrar la ventana cuando llame /usr/bin/bash --login -ial final;

start "" "%ProgramFiles%\Git\git-bash.exe" -c "echo 1 && echo 2 && /usr/bin/bash --login -i"

Nota: no estoy seguro de que sea una buena forma :)


4
Buena respuesta, pero la ventana de git-bash se cierra inmediatamente. ¿Sabe cómo deshabilitar el cierre automático después de que finaliza la ejecución del comando?
Mark

@ Mark Gracias Mark. Agregué un ejemplo a mi respuesta anterior. Por desgracia, no estoy seguro de lo que debemos hacer que en el camino correcto porque no soy una persona ventanas :)
kujiy

1
[code] start "" "% ProgramFiles% \ Git \ git-bash.exe" [/ code] funciona muy bien!
PauAI

@PauAI 2018 ahora ... Lo intenté start "" "%ProgramFiles%\Git\git-bash.exe"desde una línea de comando de administrador, y aunque muestra Git Bash en una nueva ventana, al escribir un comando simple como no se lsobtiene salida. Este método no parece permitir la ejecución de comandos de Linux. ... EDITAR: Funcionó, solo tomó mucho tiempo (2 minutos) ejecutar ls. Luego, ls volvió a funcionar en menos de 1 segundo. ... extraño.
Eric Hepperle - CodeSlayer2010

8

Prefiero poner git en la variable de entorno y simplemente llamar

c:\Users\[myname]>sh
or 
c:\Users\[myname]>bash

Pasos para crear la variable de entorno (Win7)

  • Desde el escritorio, haga clic con el botón derecho en el ícono de Computadora.
  • Elija Propiedades en el menú contextual.
  • Haga clic en el enlace Configuración avanzada del sistema.
  • Haga clic en Variables de entorno.
  • En la sección Variables de usuario, presione el botón NUEVO, coloque el nombre de la variable como GIT_HOME, el valor como (carpeta-donde-instaló-git).

    • para mi lo fue c:\tools\git, otros tal vez tenganC:\Program Files\Git
  • busque la PATHvariable de entorno y selecciónela. Haga clic en Editar. (Si la variable de entorno PATH no existe, haga clic en Nuevo).

  • En la ventana Editar, agregue un nuevo valor %GIT_HOME%y %GIT_HOME%\bin. Haga clic en Aceptar. Cierre todas las ventanas restantes haciendo clic en Aceptar.
  • [Asegúrate de cerrar la CMD que quieres usar para git]
  • abra un nuevo símbolo del sistema y simplemente escriba sho bashogit-bash

2
¡Gracias! Pude hacer que esto funcionara con GIT_HOME como C:\Program Files\Gity escribiendo git-bashdesde CMD. Además, curiosamente, aunque solo tiene que escribir PATH para ver su contenido, para ver el contenido de esta variable personalizada de git debe escribirecho %GIT_HOME%
Eric Hepperle - CodeSlayer2010

Gracias, esta fue una gran adición. Para agregar a esto, cuando tenga la GIT_HOMEvariable y use el git-bashcomando (o git-cmd) la abrirá en una nueva ventana. Si agrega a la variable de entorno "PATH", cambiará en esa ventana existente. También puede escribir exitpara "cerrar sesión" de git bash y aún conservar el indicador de DOS.
Keith E. Truesdell

4
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login -i

Git bash se abrirá.


3

https://stackoverflow.com/a/33368029/15789

He publicado una respuesta aquí.

Abra una ventana de comandos de Windows y ejecute este script. Si hay un cambio en su directorio de trabajo, abrirá una terminal bash en su directorio de trabajo y mostrará el estado actual de git. Mantiene la ventana de bash abierta, llamando a exec bash.

Si tiene varios proyectos, puede crear copias de este script con una carpeta de proyecto diferente y llamarlo desde un script por lotes principal.


3

Usé la información anterior para ayudar a crear una solución más permanente. A continuación, se creará el alias sh que puede usar para abrir Git Bash:

echo @start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login > %systemroot%\sh.bat

Gracias dpate! Pegué su declaración de eco en la línea de comandos y ejecuté shy se abrió una ventana de git-bash y pude ejecutar los comandos perfectamente. ¿Puede agregar un pequeño detalle a su respuesta explicando cómo funciona esto? Prefiero aprender cómo funciona la pesca a que alguien me dé un pescado, y creo que beneficiará a otros que buscan una buena respuesta. gracias
Eric Hepperle - CodeSlayer2010

0

La respuesta de Endoro ha envejecido y no puedo comentar;

# if you want to launch from a batch file or the command line:

start "" "%ProgramFiles%\Git\bin\sh.exe" --login

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.