添加Git-Bash到新的Windows终端

我试图添加一个新的终端(Git Bash)到新的Windows终端。然而,我不能让它工作。

我尝试将profiles数组中的commandline属性更改为git-bash.exe,但运气不好。

有人知道怎么让它工作吗?

259807 次浏览

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

这对我来说是可行的,并且允许运行.bash_profile别名自动完成脚本。

我是这样做的:

  1. 添加“%programfiles%\Git\Bin”到你的路径
  2. 在档案上。将需要的命令行设置为"commandline": "sh——cd-to-home"
  3. 重新启动Windows终端

这对我很管用。

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

中写入"commandline": "bash.exe"

概述

  1. 使用Ctrl+打开设置
  2. 你需要在settings.json文件的"list":部分附加下面的配置文件选项之一(取决于你安装的git版本):

打开设置。/></a> . json</p>
<pre class={ "$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> ] } }

配置文件选项

取消注释commandlineicon的正确路径,如果你正在使用:

{
"guid": "{00000000-0000-0000-ba54-000000000002}",
"commandline": "%PROGRAMFILES%/Git/usr/bin/bash.exe -i -l",
// "commandline": "%USERPROFILE%/AppData/Local/Programs/Git/bin/bash.exe -l -i",
// "commandline": "%USERPROFILE%/scoop/apps/git/current/usr/bin/bash.exe -l -i",
"icon": "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico",
// "icon": "%USERPROFILE%/AppData/Local/Programs/Git/mingw64/share/git/git-for-windows.ico",
// "icon": "%USERPROFILE%/scoop/apps/git/current/usr/share/git/git-for-windows.ico",
"name" : "Bash",
"startingDirectory" : "%USERPROFILE%"
},

您还可以添加其他选项,如:

{
"guid": "{00000000-0000-0000-ba54-000000000002}",
// ...
"acrylicOpacity" : 0.75,
"closeOnExit" : true,
"colorScheme" : "Campbell",
"cursorColor" : "#FFFFFF",
"cursorShape" : "bar",
"fontFace" : "Consolas",
"fontSize" : 10,
"historySize" : 9001,
"padding" : "0, 0, 0, 0",
"snapOnInput" : true,
"useAcrylic" : true
}

笔记

"defaultProfile" : "{00000000-0000-0000-ba54-000000000001}",
  • -l -i来确保.bash_profile被加载
  • 使用环境变量,这样它们就可以正确地映射到不同的系统。
  • 目标git/bin/bash.exe以避免产生额外的进程,根据进程资源管理器,与使用bin/bash或git-bash相比,每个进程节省大约10MB

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

有以下事情要做。

  1. 确保git命令在命令提示符中成功运行。

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

Run git in Command Prompt .

  1. 更新文件profile.json:在Windows终端中按Ctrl+打开Settings,在侧栏中单击“打开JSON文件”,并在单词profiles中添加以下片段:

打开设置。/></a> . json</p>
<pre class= { "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://开头的图像资源。

注意,请确保__abc0是正确的,并且它匹配相应的正确配置。

  1. 测试git bash在Windows终端中工作。
最终结果如下: enter image description here < / p >

如果你想显示一个图标,并使用黑色主题。这意味着上面提供的图标看起来不太好。然后你可以在这里找到这个图标

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
},

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

  1. 设置默认配置文件:
"globals":
{
"defaultProfile" : "{00000000-0000-0000-0000-000000000001}",
...
  1. 添加giitbash配置文件
"profiles": [
{
"guid": "{00000000-0000-0000-0000-000000000001}",
"acrylicOpacity": 0.75,
"closeOnExit": true,
"colorScheme": "GitBash",
"commandline": "\"%PROGRAMFILES%\\Git\\usr\\bin\\bash.exe\" --login -i",
"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
}
]
  1. 添加giitbash配色方案
  "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"
}
]
  1. 添加右键上下文菜单“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\""
  • 用你的Windows用户名替换{YOUR_WINDOWS_USERNAME}
  • 创建一个图标文件夹,把图标放在那里,并用图标文件夹替换{YOUR_ICONS_FOLDER}
  • 将其保存在.reg文件中并运行它。
另一个需要注意的项-在settings.json中 我发现如果你不使用 "commandline": "C:/Program Files/Git/bin/bash.exe"

.exe

而不是使用: "commandline": "C:/Program Files/Git/ Git -bash.exe"

.exe

Git shell将在Windows终端之外的一个独立窗口中打开,而不是在一个选项卡中打开——这不是理想的行为。 此外,Windows终端中打开的选项卡也需要手动关闭,因为它将显示退出的进程信息- [process exited with code 3221225786]等

可能会让人头疼

因为大多数答案要么显示大量不相关的配置,要么不显示配置,所以我创建了自己的答案,试图更集中。它主要基于配置文件设置参考阿基米德·特拉哈诺的回答

步骤

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

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

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

    {
    "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%"
    },
    

笔记

  • 目前有一个问题,你不能使用你的方向键(和其他一些键)。不过,它似乎可以与最新的预览版一起使用。(问题# 6859)

  • 指定"startingDirectory" : "%USERPROFILE%"不应该是必要的。但是,如果我没有指定它,起始目录就会不同,这取决于我最初如何启动终端。

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

  • 我建议在profiles.defaults中设置"antialiasingMode": "cleartype"。你必须删除"useAcrylic"(如果你根据其他答案的建议添加了它)才能使它工作。它提高了文本渲染的质量。然而,没有useAcrylic你就不能有透明的背景。看到问题# 1298

  • 如果你对光标有问题,你可以尝试另一种形状,如"cursorShape": "filledBox"。更多信息请参见光标设置

这就是我如何在profiles json表中添加我的,

{
"guid": "{00000000-0000-0000-ba54-000000000002}",
"name": "Git",
"commandline": "C:/Program Files/Git/bin/bash.exe --login",
"icon": "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico",
"startingDirectory": "%USERPROFILE%",
"hidden": false
}

新版本的windows终端可以通过其GUI进行配置。

Setting -> Add new
Under "command line" add the path -> path/to/Git/bin/bash.exe

它是2021年9月,谢天谢地,最新的Git安装程序用于Windows(我使用的是2.33.0.2)已经为我们覆盖了这个选项,为了我们的懒惰(当然也为了方便!)

安装Git前,请先安装Windows终端,虽然我还没有尝试其他方式,但最好遵循合理的顺序。如果安装顺序不是这样,请让我知道更新这个答案。

你可能会在安装阶段选择组件的底部找到这个少数复选框,只要勾选那里的复选框,你就可以开始了。 enter image description here < / p >

settings.json文件将自动添加到带有正确Git Bash图标的Git Bash配置文件中。我生成的Git Bash配置文件非常标准和简洁。

{
"guid": "{2ece5bfe-50ed-5f3a-ab87-5cd4baafed2b}",
"hidden": false,
"name": "Git Bash",
"source": "Git"
}

如果Windows终端正在运行,请关闭并再次启动,以便Git Bash选项可见。

如果有人正在寻找一个基于ui的解决方案。下面就是:

  1. 进入终端设置。

  2. 在右下角,寻找&;Add new profile&;选择。 终端设置的截图。 < / p >

  3. 选择“New Empty profile”;

  4. 现在用关于您的bash的信息完成字段。如果你的安装位置是默认的,你可以使用这些:

  • 名称: Git-Bash
  • 命令行: C:\Program Files\Git\bin\bash.exe
  • Startin目录: [默认保留]
  • 图标: C:\Program Files\Git\mingw64\share\git\ git-for-windows.ico
  • <李> 选项卡标题: Git-Bash 终端设置完成 如果你需要的话,你也可以浏览正确的文件
  1. 点击保存按钮。

最终结果

最终结果。Bash终端< / >

对于任何可能会错过bash历史记录的人:
在已经打开的git bash中,尝试启动另一个bash -如果env vars正确配置

,则应该加载您的配置文件

如果这是你的情况,你可以通过在启动时添加以下命令行来自动化它:

C:\progra~1\git\usr\bin\bash.exe --login -l -i -c /c/progra~1/git/usr/bin/bash.exe

搞Linux的,抱歉我来晚了;我只是第一次安装git-bash,并研究它的命令应该在Windows终端中。

据我所知

  • Cygwin不是Windows,但它提供了一个POSIX转换层(cygwin*.dll),以便所有非Windows可执行文件都可以运行。即使用cygwin编译和构建了一个新的计算机程序,它仍然是非windows可执行文件,它仍然需要cygwin*.dll来运行。
  • MSYS2主要是Windows,只有少数工具可能很难移植剩余的非Windows,并需要POSIX转换层运行(msys*.dll);但是,大多数程序实际上是Windows本机可执行文件。即使当一个新的计算机程序被编译和构建时,据我所知,结果也是Windows原生的*.exe。

但我仍然不知道这些MSYSTEM*MINGW*环境变量是否设置有多重要,无论如何,当我要使用MINGW编译器时。

我确实注意到,在整个线程中,两个命令行都不断出现,即./bin/bash./usr/bin/bash;所以,我把它们发射出去,比较它们的环境……结果可能会大不相同。

要知道,在启动下面的任何shell之前,我已经有C:\Git\mingw64\binC:\Git\usr\bin作为系统变量PATH的一部分;我这样做是因为我希望能够直接从CMD使用bash命令。但我不认为这对下面的结果有任何影响。

                                        c:\Git\bin\bash.exe --login     c:\Git\usr\bin\bash.exe --login
Environment Variable    c:\Git\bin\bash.exe                     c:\Git\usr\bin\bash.exe
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EXEPATH                 c:\git\bin      c:\git\bin              n       n
HOSTNAME                n               MDXXXXXX                n       MDXXXXXX
MINGW_CHOST             n               x86_64-w64-mingw32      n       n
MINGW_PACKAGE_PREFIX    n               mingw-w64-x86_64        n       n
MINGW_PREFIX            n               /mingw64                n       n
MSYSTEM_CARCH           n               x86_64                  n       x86_64
MSYSTEM_CHOST           n               x86_64-w64-mingw32      n       x86_64-pc-msys
MSYSTEM_PREFIX          n               /mingw64                n       /usr
MSYSTEM                 MINGW64         MINGW64                 n       MSYS
PLINK_PROTOCOL          ssh             ssh                     n       n
SHELL                   n               /usr/bin/bash           n       /usr/bin/bash
TMPDIR                  n               /tmp                    n       /tmp


ORIGINAL_PATH           n               y                       n       y
ORIGINAL_TEMP           n               y                       n       y
ORIGINAL_TMP            n               y                       n       y
PATH                    /mingw64/bin:/usr/bin:$HOME/bin:$PATH
PATH                                    $HOME/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/mingw64/bin:/usr/bin:$HOME/bin:$PATH
PATh                                                            $PATH
PATH                                                                    $HOME/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:$PATH

因此,为了更好地衡量,在我看来,更正确的做法是使用./bin/bash --login;但此时此刻,我不确定会有什么不同,比如说,当真正使用MINGW64/GCC编译一个全新的程序时;让我们拭目以待。

据我所知,从我目前的windows终端版本1.15.2874.0,你可以通过简单的手动单击来配置它。 前提条件是

  1. 安装git bash客户端。
  2. Windows终端版本1.15.2874.0及以上。

然后按照以下步骤完成设置。

  1. 打开窗口终端,找到“Settings"在菜单栏右上角的下拉列表中(或使用快捷键ctrl+,);
  2. 点击“Add new profile”;在左侧栏的底部,设置模板屏幕将自动弹出。
  3. 交互式鼠标单击您要设置“名称”,“可执行路径”命令行,“启动目录”,“图标”;价值。例如,我将我的设置为"gitBash""C:\Program Files\Git\bin\bash.exe""%USERPROFILE%"和“%USERPROFILE%"按照定制的顺序。"C:\Program Files\Git\mingw64\share\git\git-for-windows.ico"
  4. 保存。

以下截图仅供参考。 enter image description here < / p >

enter image description here