如何使用脚本启动具有特定工作目录的 Git Bash 窗口?

Posted

技术标签:

【中文标题】如何使用脚本启动具有特定工作目录的 Git Bash 窗口?【英文标题】:How do I launch a Git Bash window with particular working directory using a script? 【发布时间】:2013-11-23 20:43:45 【问题描述】:

如何使用脚本(Bash 或 Windows 批处理)启动具有指定工作目录的新 Git Bash 窗口?

我的目标是从一个脚本启动多个 Git Bash 窗口,每个窗口设置到不同的工作目录。这样我可以在启动计算机后快速开始工作,而不必打开 Git Bash 窗口并将每个窗口导航到正确的工作目录。

我不是在询问如何更改默认工作目录,就像 this question 那样,而是通过脚本启动一个或多个具有不同工作目录的终端窗口。

【问题讨论】:

@StevenVascellaro 编辑问题以解释为什么这不是骗局。 这是有道理的。我撤回了我的重复投票。 【参考方案1】:

另一种选择是创建具有以下属性的快捷方式:

目标应该是:

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

Start in 是您希望启动 Git Bash 提示的文件夹。

【讨论】:

赞!从来不知道Start in 与程序认为它所在的工作目录有关。 这是最简单的方法。之后,我将该快捷方式固定到任务栏,然后是 Windows + 1,我将其保留为任务栏的第一项,直接使用 git-bash 打开 repo。【参考方案2】:

试试 --cd= 选项。假设您的 GIT Bash 位于 C:\Program Files\Git 中,它将是:

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

如果在注册表项中使用,文件夹参数可以与 %1 一起提供:

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

【讨论】:

如何使用%1 注册表参数? 当前答案已经过时了,这个应该是那个! 这似乎是一个批处理文件。 (.bat)【参考方案3】:

Git Bash 使用cmd.exe 作为其终端以及由sh.exe 提供的来自MSYS/MinGW 的扩展,这是一种cmd.exe 包装器。在 Windows 中,您使用 start 命令启动一个新终端。

因此,启动具有特定工作目录的新 Git Bash 终端的 shell 脚本是:

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

等效的 Windows 批处理脚本是:

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 

要获得与从开始菜单启动的 Git Bash 相同的字体和窗口大小,最简单的方法是将开始菜单快捷方式设置复制到命令控制台默认值(要更改默认值,打开 cmd.exe,左键单击左上角图标,然后选择默认值)。

【讨论】:

这对我有用:cd 到我希望 Git Bash 启动的目录,然后在您的示例中运行 start 命令将在该目录中真正给我一个 Git Bash 终端。你确定你没有在你的 bash rc 文件中的某个地方做一个cd $HOME(或没有参数的cd)吗? (如.bashrc.profile、...)还要记住驱动器号。如果你想在 X: 驱动器上启动 Git Bash,那么做 cd x:\path 不会削减它,你必须在 start 之前做 x: 然后 cd \path 你是对的!我错过了你不能简单地cd x:\path 的事实。将相应地编辑我的解决方案。 完美解决方案!让我补充一下,默认的 cmd.exe 设置与安装 Git Bash 时的默认 Git Bash 设置相同!您必须了解默认设置(上下文菜单中的Defaults)和当前设置(Properties)之间的区别。所以,我所做的是:(1)打开 Git Bash,选择 Properties(当前设置),(2)调整它,精确到我想要的(字体,窗口大小 + 位置),(3)打开 @987654344 @,选择 Defaults,(4) 从 Git Bash 复制粘贴设置到 cmd.exe。然后OKcmd.exe'设置中,CancelGit Bash 的设置中,瞧!【参考方案4】:

让我们把@Drew Noakes 的答案加起来:

目标:

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

cd 参数应该是如何指定工作目录的选项之一。

另外请注意,我没有任何 --login 参数:相反,我使用另一个专门用于 SSH 密钥的额外应用程序:Pageant(PuTTY 身份验证代理)

开始于:

C:\GitRepo

同样可能的方式,正如@Drew Noakes 在这里提到/显示的那样,我也使用它。

快捷键:

Ctrl + Alt + B

此类快捷方式是 Windows 中另一个鲜为人知的功能。但是有一个限制:要让快捷方式生效,必须把它放在用户子目录的某个地方:桌面就可以了。

如果您不希望它可见但仍可激活,请将此 .lnk 文件(即,快速启动文件夹)放置,因为该目录用于此类快捷方式。 (不管是否显示在桌面上)#76080#3619355

"\Application Data\Microsoft\Internet Explorer\Quick Launch\"

【讨论】:

【参考方案5】:

此外,Win10 还提供了一个选项,可以从工作目录中打开 git bash,方法是右键单击文件夹并在此处选择 GitBash。

【讨论】:

【参考方案6】:

Windows 10

这基本上是@lengxuehx 的答案,但已针对 Win 10 进行了更新,并且假定您的 bash 安装来自 git's official downloads 的 Git Bash for Windows。

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

在我丢失了 Git Bash 的上下文菜单项作为从注册表设置运行的命令后,我最终使用了它。如果您对此感到好奇,我这样做了:

    shell 密钥HKEY_CLASSES_ROOT\Directory\Background\shell 中创建一个名为Bash 的新密钥 将字符串值添加到Icon(不是新键!)这是您的 git-bash.exe 的完整路径,包括 git-bash.exe 部分。您可能需要用引号括起来。 将Bash 的默认值编辑为要在上下文菜单中使用的文本 向Bash 添加一个名为command 的子键 修改command的默认值为cmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit

然后您应该能够关闭注册表并从任何真实目录开始使用 Git Bash。例如,This PC 不是真正的目录。

【讨论】:

作为记录,HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\command 注册表中默认的 git bash 条目是 "C:\Program Files\Git\git-bash.exe" "--cd=%v." 不错!谢谢,@Ferrybig! ^_^【参考方案7】:

这是可以直接在Run dialog box中执行的命令(快捷键是win+R),也可以很好的保存为.bat脚本:

cmd /c (start /d "/path/to/dir" bash --login) && exit

【讨论】:

它在 windows 10 中运行新的 cmd @kyb 对于 Win 10 应该是 /b @kyb 我的答案是对 lengxuehx 答案的修改,以防您或其他任何人仍然感兴趣:***.com/a/39779451/3543437【参考方案8】:

我不熟悉 Git Bash,但假设它是一个位于 /path/to/my/gitshell 中的 git shell(例如 git-sh)并且您最喜欢的终端程序称为“myterm”,您可以编写以下脚本:

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

请注意,用于执行的参数-e 可能与您喜欢的终端程序的名称不同。

【讨论】:

谢谢,您的回答让我想到了正确的方向!这就是我在 Linux 中做事的方式,但我无法在 MS Windows 中找到等价物……直到现在!对于 Git Bash,myterm 是通过 MSYS/MinGW 添加的 cmd.exe。要启动新的 cmd,您可以使用 Windows 特定的 start 命令,后跟 Git Bash 的 sh.exe 的路径,然后是您喜欢的任何命令行选项。我的回答提供了详细信息。【参考方案9】:

如果使用 Windows 操作系统

    右键单击 git 终端 > 属性

    属性>在快捷方式选项卡下>开始于: 添加您的文件夹目标路径,如下图所示

【讨论】:

【参考方案10】:

使用 Windows 资源管理器,导航到您想要的任何目录,在地址栏中键入“cmd”,它将在该目录中打开 Windows 命令提示符。

同样,如果您的路径中有git 目录,您可以在地址栏中键入“git-bash”,Git Shell 将在该目录中打开。

【讨论】:

@MichaelMcQuade 这是一个提示,可以,但没有回答问题,如何通过脚本打开 git-bash

以上是关于如何使用脚本启动具有特定工作目录的 Git Bash 窗口?的主要内容,如果未能解决你的问题,请参考以下文章

如何为具有特定路径(React Native)的现有项目创建私有 Git 存储库?

如何让 Git 遵循符号链接?

如何使用bash脚本从csv文件中读取特定的整数?

用于运行命令行的 Python 脚本,该命令行启动具有特定 Python 版本的 Python 脚本

获取有关特定目录中行贡献的 Git 统计信息

docker~写个容器启动的bash脚本