Git Bash在Console2中吗?


47

MSysGit安装一个上下文菜单项,该菜单项在当前选定的文件夹中打开Git Bash提示符;但是,这将打开一个cmd.exe窗口,而我希望它在Console2中打开。

我需要进行哪些修改才能使其正常工作?

注意,我已经看到了这个相关的问题,但是答案已经过时了-MSysGit现在使用vba脚本来调用bash提示。此外,它没有明确说明如何使Console2正常运行。

更新:您可能会对ConEmuConsole的出色替代者)进行相同的操作感兴趣。看到这里:ConEmu中的Git Bash

Answers:


44

这是我所做的(您的路径几乎可以肯定会有所不同):

  1. 在控制台中使用以下值创建一个新选项卡:
    • 标题: Git Bash
    • 图标: C:\Program Files\Git\etc\git.ico
    • 贝壳 "C:\Program Files\Git\bin\sh.exe" --login -i
    • 启动目录: %HOMEDRIVE%%HOMEPATH%
  2. 创建一个HKEY_CLASSES_ROOT\Directory\shell\名为的新键git_shell2,其数据值为Git Console Here
  3. 创建一个HKEY_CLASSES_ROOT\Directory\shell\git_shell2\名为的新键command,其数据值为"C:\Users\charlesr\My Dropbox\Software\Console2\Console.exe" -t "Git Bash" -d "%1"

这可以解决问题。

代替执行上面的步骤2和3,您可以将以下内容复制到.reg文件中(首先修改路径以适合您自己的配置),然后导入注册表。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\git_shell2]
@="Git Console Here"

[HKEY_CLASSES_ROOT\Directory\shell\git_shell2\command]
@="\"C:\\Users\\charlesr\\My Dropbox\\Software\\Console2\\Console.exe\" -t \"Git Bash\" -d \"%1\""

只是为以后找到它的其他人提供的注释,请确保您使用的是32位版本的Console2,否则将失败。
coderanger

请注意,在最新的msysgit中,该图标现在位于C:\ msysgit \ share \ resources \ git.ico中
Kevin Berridge

1
感谢Charles,但是为什么要执行步骤2和3?仅执行步骤1即可正常工作,不确定是否需要更改存储库设置?
Mark Kadlec 2012年

2
很整齐。请注意,单击文件夹的“背景”(白色部分,而不是图标)时,您也可以添加上下文菜单gist.github.com/4048138
Ozh 2012年

我使用这种设置已有一段时间了,但是它似乎有一个不幸的局限,就是它无法执行.bat脚本(无需切换到其他选项卡,即可运行Cmd.exe)。有没有人对此有任何见解?
Eoin 2014年

7

vba脚本仅在同一目录中启动Git Bash快捷方式。只需更改该快捷方式,使其指向Console2的可执行文件并配置Console2,以使其使用MSysGit的sh作为其外壳即可。


更新

进入更多细节,因为我只需要在新计算机上再次进行以下操作:

  • 配置Console2

    1. 添加了一个名为“ git”的新标签
    2. 将图标设置为 C:\Program Files (x86)\Git\etc\git.ico
    3. 将外壳设置为 C:\Program Files (x86)\Git\bin\sh.exe --login -i
  • 调整Git Bash的快捷方式

    1. 将快捷方式目标更改为C:\Tools\Console2\Console.exe -t git -d .(以及Console2二进制文件所在的位置)
    2. 享受您启动Console2的新“ Git Bash Here”!

诀窍是“ -d”。选项传递给Console2:Git Bash.vbs在启动快捷方式之前,脚本会将当前目录更改为鼠标指向的位置。

希望能有所帮助。


5

万一有人偶然发现要使用 MinGW Bash的情况,我找到了解决方案。

  1. Console2,编辑,设置,选项卡,添加
  2. 标题= Bash
  3. 壳= C:\MinGW\msys\1.0\bin\sh.exe -l
  4. 编辑注册表

    ni hklm:software/classes/directory/shell/bash/command `
      -f -va 'c:/Console2/Console.exe -t Bash -d %v'
    
  5. ~/.profile使用以下内容创建:

    cd -
    

cd手册页

可以在64位和32位Console2上使用,不确定是否要使用 coderanger


此命令有几个问题,导致控制台返回错误。首先,HKCR\...\command不应用引号引起来。接下来,我相信\-d您的意思是传递/d参数来指定新注册表项的数据。另外,您需要在数据值-t两边加上双引号,并且该参数会导致Console.exe根本无法打开,因此请排除它。它应该看起来像这样:reg add HKCR\Directory\shell\Bash\command /d "C:\Console2\Console.exe -d \"%V\""
David Kennedy

从您的注释中可以明显看出您仍在使用cmd.exe,因为Bash允许对字符串使用单引号和双引号。您应该考虑升级到Bash。
Steven Penny

0

假设您有一个名为“ bash”的Console2选项卡:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\console2_bash]
@="Bash here (Console2)"
"NoWorkingDirectory"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\console2_bash\command]
@="\"C:\\Program Files (x86)\\Console2\\Console.exe\" -t Bash -d \"%V\"\\"
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.