Git:在特定目录中打开 Git-Bash

Lor*_*sum 7 windows-7 git cmd.exe

我可以通过 Windows 命令提示符以多种方式启动 git-bash:

"C:\Program Files\Git\bin\sh.exe"
"C:\Program Files\Git\git-bash.exe"
"C:\Program Files\Git\usr\bin\mintty.exe"
Run Code Online (Sandbox Code Playgroud)

我想使用这样的调用在特定目录中启动 git-bash。


对于上下文,我是在 SAS Enhanced Editor 中执行此操作的。实际调用是

%sysexec(start "" "C:\Program Files\Git\bin\sh.exe" && exit);
Run Code Online (Sandbox Code Playgroud)

对于那些不熟悉 SAS 的人,%sysexec打开一个 Windows 命令提示符的实例并发出作为参数给出的任何命令。它的效果出奇的好。但是,我希望能够在特定目录中启动 git-bash,而不仅仅是 home。

为此,我可以在 中创建一个条目.bashrc

cd /c/new/starting/dir
Run Code Online (Sandbox Code Playgroud)

但是,这样做的麻烦在于,每当我打开 git-bash 时,例如通过特定文件夹中的上下文菜单,默认目录是.bashrc.

我看到存在 git-bash 启动选项,例如--cd-to-home--cd=<path>但我无法让它们工作。例如,

"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.
Run Code Online (Sandbox Code Playgroud)

是否可以从 Windows 命令提示符在特定目录中启动 git-bash?如果是这样,正确的语法是什么?

BONUS:在50个字符以内做加分

小智 10

"C:\Program Files\Git\git-bash.exe" --cd=c:\path\to\folder
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说不起作用。我对此感到困惑,直到我检查了“~/.bashrc”。你瞧,脚本的第一行是“cd $GIT_HOME”。我注释掉了这一行,现在 `--cd` 参数正在起作用。 (2认同)

Lor*_*sum 5

一种可能的解决方案是在打开 git-bash 之前更改目录。默认情况下,无论当前目录是什么,git-bash 都会打开。为此,cd请在start,

cd C:\specific\dir\to\open && start "" "C:\Program Files\Git\bin\sh.exe"
Run Code Online (Sandbox Code Playgroud)

由于这是在 SAS 中完成的,因此可以将特定目录存储在宏变量中。这保证了 50 个字符以内的要求(因此可以从KEYS菜单中的热键调用)。您可以在代码中的某处分配 Git 工作目录,

%let gwd = C:\specific\dir\to\open;
Run Code Online (Sandbox Code Playgroud)

然后%sysexec电话看起来像

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

这如下工作。首先,SAS 将扩展&gwd. 然后它会打开一个 Windows 命令提示符。将cd目录更改为已&gwd.解决的任何内容。Git-bash 然后在当前目录(已更改为&gwd.)中打开。最后,每当 git-bash 关闭时,exit都会给出命令,关闭 Windows 命令提示符会话。

不幸的是,似乎最初cd在调用和打开 git-bash 之间引入了足够的延迟,这很烦人。我怀疑cd在 git-bash中发出命令可能会更快,但这种方法确实有效。


归档时间:

查看次数:

23442 次

最近记录:

5 年,5 月 前