将Git-Bash添加到新的Windows终端


Answers:


301

总览

  1. 使用打开设置 ctrl + ,
  2. 你要添加的(取决于你安装什么混帐的版本)到下方的个人资料选项之一"list":的部分settings.json文件

    {
        "$schema": "https://aka.ms/terminal-profiles-schema",
    
        "defaultProfile": "{00000000-0000-0000-ba54-000000000001}",
    
        "profiles":
        {
            "defaults":
            {
                // Put settings here that you want to apply to all profiles
            },
            "list":
            [
                <put one of the configuration below right here>
            ]
        }
    }
    

个人资料选项

1. Windows版Git

    {
        "guid": "{00000000-0000-0000-ba54-000000000002}",
        "acrylicOpacity" : 0.75,
        "closeOnExit" : true,
        "colorScheme" : "Campbell",
        "commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l",
        "cursorColor" : "#FFFFFF",
        "cursorShape" : "bar",
        "fontFace" : "Consolas",
        "fontSize" : 10,
        "historySize" : 9001,
        "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
        "name" : "Bash",
        "padding" : "0, 0, 0, 0",
        "snapOnInput" : true,
        "startingDirectory" : "%USERPROFILE%",
        "useAcrylic" : true
    },

2. Scoop for Windows的Git

如果您使用独家新闻

    {
        "guid": "{00000000-0000-0000-ba54-000000000001}",
        "acrylicOpacity" : 0.75,
        "closeOnExit" : true,
        "colorScheme" : "Campbell",
        "commandline" : "\"%UserProfile%\\scoop\\apps\\git\\current\\usr\\bin\\bash.exe\" -i -l",
        "cursorColor" : "#FFFFFF",
        "cursorShape" : "bar",
        "fontFace" : "Consolas",
        "fontSize" : 10,
        "historySize" : 9001,
        "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
        "name" : "Bash",
        "padding" : "0, 0, 0, 0",
        "snapOnInput" : true,
        "startingDirectory" : "%USERPROFILE%",
        "useAcrylic" : true
    },

笔记

"defaultProfile" : "{00000000-0000-0000-ba54-000000000001}",
  • -i -l确保.bash_profile加载
  • 使用环境变量,以便它们可以正确映射到不同的系统。
  • 目标git\bin\bash.exe是避免产生其他进程,与使用bin / bash或git-bash相比,根据Process Explorer,每个进程可节省约10MB

我的配置在https://gist.github.com/trajano/24f4edccd9a997fad8b4de29ea252cc8中使用Scoop


2
请注意,与git-bash.exe不同,bash.exe在git \\ bin下,而不是直接在Git目录中。起初这使我绊倒了。
Mike Henry

70
如果您想添加正确的图标,这就是我将图标字段设置为:"icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"
Chris Sandvik

1
我实际上使用了自定义图标icons8.com/icon/set/console/office,但这是一个很好的提示,如果您想要该图标
Archimedes Trajano

1
我缺少要加载bash_profile的-i -l选项。谢谢。
ImAtWar

34
只需添加@ChrisSandvik的注释,就可以像这样引用该图标:"icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico"
朱利安

62

以下是要做的事情。

  1. 确保您的git命令可以在CMD中成功运行

这意味着您需要git在安装git时添加到path或以后将其添加到系统环境中。

在此处输入图片说明

  1. 更新配置文件 profile.json

打开Settings,在单词中添加以下代码段profiles

        { 
            "tabTitle": "Git Bash",
            "acrylicOpacity" : 0.75, 
            "closeOnExit" : true, 
            "colorScheme" : "Campbell", 
            "commandline" : "C:/Program Files/Git/bin/bash.exe --login", 
            "cursorColor" : "#FFFFFF", 
            "cursorShape" : "bar", 
            "fontFace" : "Consolas", 
            "fontSize" : 12, 
            "guid" : "{14ad203f-52cc-4110-90d6-d96e0f41b64d}", 
            "historySize" : 9001, 
            "icon": "ms-appdata:///roaming/git-bash_32px.ico",
            "name" : "Git Bash", 
            "padding" : "0, 0, 0, 0", 
            "snapOnInput" : true, 
            "useAcrylic" : true 
        }

可以在这里获取图标: git-bash_32px.ico

您可以将Tab标签的图标添加到以下位置:

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

将32x32 PNG / icons放在此文件夹中,然后profile.json您可以使用以ms-appdata://开头的路径引用图像资源。

请注意,请确保Guid正确,并且与相应的正确配置匹配。

  1. 测试git bash在 Windows Terminal

最终结果如下: 在此处输入图片说明


@Mendy仅供参考,希望对您有帮助。
杨永Bra

27
您还可以从“ C:\\ Program Files \\ Git \\ mingw64 \\ share \\ git \\ git-for-windows.ico”中获取图标
Mendy

感谢您显示正斜杠在commandLine参数中起作用,这使键入命令变得更加容易。
吉姆·拉登

有没有办法让它直接进入/ c / windows / system32?
布鲁克林

谢谢...标记的答案由于某种原因对我不起作用,但是这个答案对我有用。我将git安装在另一个分区上,因此环境变量是一个问题。该答案的信息较少,但是对于实现目标却非常简单。
Felipe Correa

57

这是完整的答案(GitBash +配色方案+图标+上下文菜单

1)设置默认配置文件:

"globals" : 
{
    "defaultProfile" : "{00000000-0000-0000-0000-000000000001}",
    ...

2)添加GitBash配置文件

"profiles" : 
[
    {
        "guid": "{00000000-0000-0000-0000-000000000001}",
        "acrylicOpacity" : 0.75,
        "closeOnExit" : true,
        "colorScheme" : "GitBash",
        "commandline" : "\"%PROGRAMFILES%\\Git\\usr\\bin\\bash.exe\" --login -i -l",
        "cursorColor" : "#FFFFFF",
        "cursorShape" : "bar",
        "fontFace" : "Consolas",
        "fontSize" : 10,
        "historySize" : 9001,
        "icon" : "%PROGRAMFILES%\\Git\\mingw64\\share\\git\\git-for-windows.ico", 
        "name" : "GitBash",
        "padding" : "0, 0, 0, 0",
        "snapOnInput" : true,
        "startingDirectory" : "%USERPROFILE%",
        "useAcrylic" : false        
    },

3)添加GitBash配色方案

"schemes" : 
[
    {
        "background" : "#000000",
        "black" : "#0C0C0C",
        "blue" : "#6060ff",
        "brightBlack" : "#767676",
        "brightBlue" : "#3B78FF",
        "brightCyan" : "#61D6D6",
        "brightGreen" : "#16C60C",
        "brightPurple" : "#B4009E",
        "brightRed" : "#E74856",
        "brightWhite" : "#F2F2F2",
        "brightYellow" : "#F9F1A5",
        "cyan" : "#3A96DD",
        "foreground" : "#bfbfbf",
        "green" : "#00a400",
        "name" : "GitBash",
        "purple" : "#bf00bf",
        "red" : "#bf0000",
        "white" : "#ffffff",
        "yellow" : "#bfbf00",
        "grey" : "#bfbfbf"
    },  

4)要添加右键单击上下文菜单“ Windows Terminal Here”

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="C:\\Users\\{YOUR_WINDOWS_USERNAME}\\AppData\\Local\\Microsoft\\WindowsApps\\{YOUR_ICONS_FOLDER}\\icon.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="\"C:\\Users\\{YOUR_WINDOWS_USERNAME}\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe\""
  • 更换 {YOUR_WINDOWS_USERNAME}
  • 创建图标文件夹,将图标放在此处并替换 {YOUR_ICONS_FOLDER}
  • 将其保存在whatever_filename.reg文件中并运行它。

2
为什么要使用MSYS版本Git\\usr\\bin\\bash.exe而不是Windows的默认MINGW版本的Git Git\\bin\\bash.exe
基思·罗素

1
@KeithRussell我还没有真正注意到任何缓慢的时间,但是如果以后再做,我可能会在它们之间进行测试。
Altin

2
甜!只需复制并粘贴。图标工作,颜色工作完美。
Corepuncher

2
@KeithRussell我调查并找到了stackoverflow.com/a/56844443/8874388,可以确认它的含义。bin\bash.exe是用于usr\bin\bash.exe(2 mb)的微小的43kb启动器。基本上就像一个符号链接,只是为了方便起见(该bin文件夹包含bash,sh和git)。换句话说,没有区别。我不确定他们为什么要麻烦制作bin文件夹版本。也许是由于遗留PATH变量原因(也不会用ls.exe,cat.exe等感染路径)。但是,是的,我们应该usr/bin/bash.exe避免使用毫无意义的bin/bash.exe包装器。
米奇·麦克马伯斯

1
@KeithRussell另外,如果右键单击Windows任务管理器的“详细信息”选项卡中的列标题,然后选择“选择”列,并启用“命令行”列,则可以看到它Git\usr\bin\bash.exe没有任何其他参数就已启动。因此,Git\bin\bash.exe包装器唯一可能做的就是在启动之前注入环境变量,但是我认为它唯一注入的是$MSYSTEM = MINGW64导致PS1提示符具有不同标题的变量,但是我怀疑它还会注入其他任何东西,因为一切正常启动任何一个二进制文件时。
米奇·麦克马伯斯

6

将个人档案参数更改为 "commandline": "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"

这对我有用,并允许我的.bash_profile别名自动完成脚本运行。


5

如果要显示图标并且正在使用深色主题。这意味着上面提供的图标看起来不太好。然后您可以在这里找到图标

C:\Program Files\Git\mingw64\share\git\git-for-windows 我将其复制到。

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

git-bash_32px按照上面的建议命名。

通过CTRL + SHIFT +滚动来控制不透明度。

        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "Campbell",
            "commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{73225108-7633-47ae-80c1-5d00111ef646}",
            "historySize" : 9001,
            "icon" : "ms-appdata:///roaming/git-bash_32px.ico",
            "name" : "Bash",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : "%USERPROFILE%",
            "useAcrylic" : true
        },

3

另一个需要注意的事项-在settings.json中,我发现您不使用“命令行”:“ C:/ Program Files / Git / bin / bash.exe”

而是使用:“ commandline”:“ C:/ Program Files / Git / git-bash.exe”

Git外壳程序将在Windows终端之外的独立窗口中打开,而不是在选项卡上打开-这不是您所期望的行为。此外,在Windows终端中打开的选项卡也将需要手动关闭,因为它将显示进程退出的信息-[使用代码3221225786退出的进程]等。

可能使某人头痛


3

因为大多数答案要么显示很多不相关的配置,要么根本不显示配置,因此这是我自己的答案,力求更加集中。它主要基于Archimedes Trajano的答案个人资料设置参考

脚步

  1. 打开PowerShell,然后输入[guid]::NewGuid()以生成新的GUID。我们将在第3步中使用它。

    > [guid]::NewGuid()
    
    Guid
    ----
    a3da8d92-2f3f-4e36-9714-98876b6cb480
  2. 打开Windows Terminal的设置。(CTRL+ ,

  3. 将以下JSON对象添加到中profiles.list。替换guid为您在步骤1中生成的代码。

    {
      "guid": "{a3da8d92-2f3f-4e36-9714-98876b6cb480}",
      "name": "Git Bash",
      "commandline": "\"%PROGRAMFILES%\\Git\\usr\\bin\\bash.exe\" -i -l",
      "icon": "%PROGRAMFILES%\\Git\\mingw64\\share\\git\\git-for-windows.ico",
      "startingDirectory" : "%USERPROFILE%"
    },

笔记

  • 根据参考资料,"startingDirectory" : "%USERPROFILE%"不必指定。但是,如果未指定,则启动目录会有所不同,具体取决于我最初启动终端的方式。

  • 可以在中指定适用于所有端子的设置profiles.defaults

  • 我建议设置"antialiasingMode": "cleartype"profiles.defaults。您必须将其删除"useAcrylic"(如果您已按照其他答案的建议将其添加)以使其正常运行。它提高了文本渲染的质量。但是,如果没有,则不能具有透明背景useAcrylic。请参阅第1298期


0

我做了如下:

  1. 将“%programfiles%\ Git \ Bin”添加到您的PATH
  2. 在profiles.json上,将所需的命令行设置为“ commandline”:“ sh --cd-to-home”
  3. 重新启动Windows终端

它为我工作。


0

添加"%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"对我不起作用。由于%PROGRAMFILES%终端中的空格符号(在cmd中为分隔符)会执行命令"C:\Program"而不是"C:\Program Files\Git\bin\bash.exe -l -i"。解决方案应该类似于在json文件中添加引号,但我不知道如何做。唯一的解决方案是将“ C:\ Program Files \ Git \ bin”添加到%PATH%并写入"commandline": "bash.exe"profiles.json


我用过 "commandline" : "C:\\PROGRA~1\\Git\\bin\\bash.exe",。无需修改我的路径
-PTRK

这对我不起作用。它启动cmd。但是,如果我"C:\\PROGRA~1\\Git\\bin\\bash.exe"在打开的终端窗口中键入内容,bash将开始。
Grigoriy

您需要在%PROGRAMFILES%附近加上一组转义的引号。例如:"commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l"
BJury
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.