Git: abre Git-Bash en un directorio específico

Git: abre Git-Bash en un directorio específico

Puedo iniciar git-bash a través del símbolo del sistema de Windows de varias maneras:

"C:\Program Files\Git\bin\sh.exe"
"C:\Program Files\Git\git-bash.exe"
"C:\Program Files\Git\usr\bin\mintty.exe"

Me gustaría iniciar git-bash en un directorio particular usando dicha llamada.


Para contextualizar, estoy haciendo esto desde SAS Enhanced Editor. La llamada real es

%sysexec(start "" "C:\Program Files\Git\bin\sh.exe" && exit);

Para aquellos que no están familiarizados con SAS, %sysexecabre una instancia del símbolo del sistema de Windows y emite cualquier comando que se proporcione como argumento. Funciona sorprendentemente bien. Sin embargo, me gustaría poder iniciar git-bash en un directorio particular, no solo en casa.

Para ello, puedo crear una entrada en .bashrc:

cd /c/new/starting/dir

Sin embargo, el problema al hacer esto es que cada vez que abro un git-bash, por ejemplo a través del menú contextual en una carpeta en particular, el directorio predeterminado es el de .bashrc.

veo queexisten opciones de inicio de git-bashMe gusta --cd-to-homeo --cd=<path>pero no puedo hacerlos funcionar. Por ejemplo,

"C:\Program Files\Git\bin\sh.exe" --cd-to-home
"C:\Program Files\Git\bin\sh.exe --cd-to-home"
"C:\Program Files\Git\git-bash.exe" --cd-to-home
"C:\Program Files\Git\git-bash.exe --cd-to-home"
etc.

¿Es posible iniciar git-bash en un directorio particular desde el símbolo del sistema de Windows? Si es así, ¿cuál es la sintaxis adecuada?

PRIMA: Puntos de bonificación por hacerlo en 50 caracteres o menos

Respuesta1

"C:\Program Files\Git\git-bash.exe" --cd=c:\path\to\folder

Respuesta2

Una posible solución es cambiar el directorio antes de abrir git-bash. De forma predeterminada, git-bash se abre en cualquier directorio actual. Para hacer esto, haga una cdllamada antes del start,

cd C:\specific\dir\to\open && start "" "C:\Program Files\Git\bin\sh.exe"

Dado que esto se hace en SAS, el directorio específico se puede almacenar en una variable macro. Esto garantiza el requisito de estar dentro de los 50 caracteres (y por lo tanto se puede llamar desde una tecla de acceso rápido en el KEYSmenú). En algún lugar de su código puede asignar el directorio de trabajo de Git,

%let gwd = C:\specific\dir\to\open;

La %sysexecllamada entonces parece

%sysexec(cd &gwd. && start "" "C:\Program Files\Git\bin\sh.exe" && exit);

Esto funciona de la siguiente manera. Primero, SAS se expandirá &gwd. Luego abre un símbolo del sistema de Windows. Los cddirectorios de cambios a lo que &gwd.se resolvió. Luego, Git-bash se abre en el directorio actual (que se cambió a &gwd.). Finalmente, cada vez que se cierra git-bash, exitse da el comando, cerrando la sesión del símbolo del sistema de Windows.

Desafortunadamente, parece que la inicial cdintroduce un retraso suficiente entre la llamada y la apertura de git-bash como para resultar molesto. Sospecho que emitir un cdcomando dentro de git-bash podría ser más rápido, pero este enfoque funciona.

Respuesta3

Puedes crear un script como este:

cd c:\path\to\particular\directory
"C:\Program Files\Git\bin\sh.exe" 

Guárdelo como o whatever.cmdy whatever.bathaga doble clic en él.

Para mayor comodidad, puede agregar su secuencia de comandos a la barra de tareas siguiendo los pasos a continuación. Pensé en incluir esto ya que no es tan fácil como cabría esperar (no se puede simplemente arrastrar el script a la barra de tareas):

  1. haga clic derecho en el script y seleccione "Crear acceso directo"
  2. Haga clic derecho en el acceso directo que creó y seleccione "Propiedades".
  3. En Acceso directo, Destino, ingrese:cmd /c C:\path\to\your\script\whatever.cmd
  4. Nota: es posible que deba especificar la ruta completa acmd(por ejemplo, C:\Windows\System32\cmd.exe...)

Ahora simplemente haga clic en el comando en su barra de tareas para ejecutar su script con un solo clic.

información relacionada