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


86

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

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

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


1
@StevenVascellaro编辑过的问题来解释为什么这不是一个骗子。
holocronweaver

那讲得通。我撤回了我的重复表决。
Stevoisiak

Answers:


62

另一种选择是使用以下属性创建快捷方式:

在此处输入图片说明

目标应该是:

“%SYSTEMDRIVE%\ Program文件(x86)\ Git \ bin \ sh.exe”-登录

“开始于”是您希望启动Git Bash提示符的文件夹。


1
荣誉!从来不知道Start in与程序认为存在的工作目录有关
。– CausingUnderflowsEverywhere

这是最简单的方法。之后,我将快捷方式固定到任务栏,然后固定到Windows + 1,我将其保留为任务栏的第一项,直接使用git-bash打开仓库。
Hareen Laks

48

GIT中bash使用cmd.exe其终端加上从MSYS / MinGW的一些推广其通过提供sh.exe,一种的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,在左上方的图标上单击鼠标左键,然后选择默认值)。


1
这对我有用:cd在我要启动Git Bash的目录中,然后start在您的示例中运行命令,实际上会在该目录中为我提供一个Git Bash终端。您确定在bash rc文件中的某处没有执行cd $HOME(或cd没有执行args)吗?(如.bashrc,,.profile...)还请记住驱动器号。如果你想在上启动的Git Bash的X:驱动器,然后做cd x:\path不会削减它,你需要做的x:,然后cd \pathstart
亚诺什

1
你是对的!我错过了你不能简单地做到这一点的事实cd x:\path。将相应地编辑我的解决方案。
holocronweaver

完美的解决方案!让我只补充一点,默认cmd.exe设置是一样的,在Git的Bash的安装默认的Git Bash的设置!而且,您必须了解默认设置(Defaults从上下文菜单中)和当前设置()之间的区别Properties。因此,我所做的是:(1)打开Git Bash,选择Properties(当前设置),(2)对其进行调整,以精确地显示我想要的(字体,窗口大小+位置),(3)打开cmd.exe,选择Defaults,(4 )从Git Bash复制粘贴设置到cmd.exe。然后OKcmd.exe“设置”中,CancelGit Bash的设置中,瞧!
trejder 2014年

48

尝试--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注册表参数?
伊拉斯mus

1
当前答案太过时了,这个应该是一个!
库兹迪·马特(KüzdiMáté)

这似乎是批处理文件。(.bat)
弗兰塔

26

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

目标:

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

cdPARAM应该是一个选项如何指定工作目录。

还要注意,--login那里没有任何参数:而是使用另一个专用于SSH密钥的额外应用程序:Pageant(PuTTY身份验证代理)

开始于:

C:\GitRepo

就像@Drew Noakes早些时候提到/在这里显示的一样,我也使用它。

快捷键:

Ctrl + Alt + B

这些快捷方式是Windows中另一个鲜为人知的功能。但是有一个限制:若要使快捷方式生效,必须将其放在用户的子目录中的某个位置:桌面就可以了。

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

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

12

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

在此处输入图片说明


4

Windows 10

这基本上是@lengxuehx的答案,但已针对Win 10进行了更新,并假定您的bash安装来自git官方下载的Windows版Git Bash 。

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

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

  1. 创建一个新密钥Bash,该shell密钥位于HKEY_CLASSES_ROOT\Directory\Background\shell
  2. 将一个字符串值Icon(不是新密钥!)添加到git-bash.exe的完整路径,包括git-bash.exe部分。您可能需要将其用引号引起来。
  3. 将默认值修改为Bash要在上下文菜单中使用的文本 在此处输入图片说明
  4. Bash调用添加一个子键command
  5. command的默认值修改为cmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit 在此处输入图片说明

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

在此处输入图片说明


3
根据记录,注册表里面在默认的git bash的入门HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\command"C:\Program Files\Git\git-bash.exe" "--cd=%v."
Ferrybig

真好!谢谢@Ferrybig!^ _ ^
kayleeFrye_onDeck

4

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

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

1
它在Windows 10中运行新的cmd
kyb

1
@kyb应该是/b赢得10的
比赛

@kyb我提出的答案是对lengxuehx答案的修改,以防您或其他任何人仍然感兴趣:stackoverflow.com/a/39779451/3543437
kayleeFrye_onDeck

3

我不熟悉Git Bash,但是假设它是一个git shell(例如git-sh),/path/to/my/gitshell并且您最喜欢的终端程序称为“ 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,然后使用所需的任何命令行选项。我的答案提供了详细信息。
holocronweaver

-1

我可能给出了错误的方向,但是,我喜欢这个技巧。

使用Windows资源管理器,指向所需的任何目录,在地址栏中键入“ cmd”,它将在该目录中打开Windows命令提示符。

如果您的路径中有“ Git”目录,则可以用相同的方式在地址栏中键入“ git-bash”,然后将在该目录中打开一个Git Shell。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.