【问题标题】:Adding Git-Bash to the new Windows Terminal将 Git-Bash 添加到新的 Windows 终端
【发布时间】:2019-11-12 07:47:54
【问题描述】:

我正在尝试将新终端 (Git Bash) 添加到新的 Windows 终端。但是,我无法让它工作。

我尝试将profiles 数组中的commandline 属性更改为git-bash.exe,但没有成功。

有人知道如何让它工作吗?

【问题讨论】:

标签: git-bash windows-terminal


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我做了如下:

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

    它对我有用。

    【讨论】:

      【解决方案3】:

      添加"%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% 并在profiles.json 中写入"commandline": "bash.exe"

      【讨论】:

      • 我使用了"commandline" : "C:\\PROGRA~1\\Git\\bin\\bash.exe",。无需修改我的路径
      • 这对我不起作用。它启动 cmd。但是如果我在打开的终端窗口中输入"C:\\PROGRA~1\\Git\\bin\\bash.exe",bash 就会启动。
      • 您需要在 %PROGRAMFILES% 周围添加一组额外的转义引号。例如:"commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l"
      • 似乎可以在配置中使用正斜杠,而 %PROGRAMFILES% 包含空格和反斜杠,就像这样 "commandline": "%PROGRAMFILES%/Git/bin/bash.exe -i -l"
      【解决方案4】:

      概述

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

      {
          "$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 的正确路径:

      • Git for Windows 在%PROGRAMFILES%
      • Git for Windows 在%USERPROFILE%
      • 如果您使用的是scoop
      {
          "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%/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 以避免产生额外的进程,根据 Process Explorer,与使用 bin/bash 或 git-bash 相比,每个进程节省约 10MB

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

      【讨论】:

      • 注意bash.exe在git\\bin下,不是直接在Git目录下,不像git-bash.exe。起初这让我绊倒了。
      • 如果要添加正确的图标,我将图标字段设置为:"icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"
      • 我缺少用于加载 bash_profile 的 `-i -l` 选项。谢谢。
      • 只是为了添加到@ChrisSandvik 的评论中,该图标也可以像这样引用:"icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico"
      • 需要注意的是,我在使用 Git\usr\bin\bash.exe 时遇到了问题。 usr 文件夹中的那个似乎缺少一些环境变量。就我而言,我遇到了 git-upload-pack 的问题,这是 NPM 上 gh-pages 的部署命令所必需的。相反,使用Git\bin\bash.exe 解决了我所有与$PATH 相关的问题。
      【解决方案5】:

      有以下事情要做。

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

      也就是说你需要在安装git时将git添加到路径中,或者稍后将其添加到系统环境中。

      1. 更新文件profile.json:在Windows Terminal中按Ctrl+,打开Settings,点击侧边栏中的Open JSON file,并添加以下sn -p 字内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 终端中是否正常工作。

      最终结果如下:

      【讨论】:

      • @Mendy 仅供参考,希望对您有所帮助。
      • 你也可以从'C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico'获取图标
      • 有没有办法让它不直接进入/c/windows/system32?
      • 谢谢...由于某种原因,标记的答案对我不起作用,但这个答案起作用了。我的 git 安装在不同的分区上,所以环境变量是个问题。此答案信息较少,但在实现目标方面非常直接。
      • @Brooklyn 添加这一行:"startingDirectory": "%USERPROFILE%"
      【解决方案6】:

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

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

      【讨论】:

        【解决方案7】:

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

        1. 设置默认配置文件:
        "globals": 
        {
            "defaultProfile" : "{00000000-0000-0000-0000-000000000001}",
            ...
        
        1. 添加 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
            }
        ]
        
        1. 添加 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"
              }
          ]
        
        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\""
        
        • {YOUR_WINDOWS_USERNAME} 替换为您的 Windows 用户名。
        • 创建一个图标文件夹,将图标放在那里并将{YOUR_ICONS_FOLDER}替换为您的图标文件夹。
        • 将其保存在 .reg 文件中并运行它。

        【讨论】:

        • 为什么Windows默认的MINGW版本Git\\bin\\bash.exe使用MSYS版本Git\\usr\\bin\\bash.exe而不是Git?
        • @KeithRussell 我没有真正注意到任何缓慢的时间,但如果我稍后再做,我可能会在它们之间进行测试。
        • 甜蜜!简单地复制和粘贴。图标有效,颜色有效,完美。
        • @KeithRussell 我调查并找到了stackoverflow.com/a/56844443/8874388,并且可以确认它所说的内容。 bin\bash.exe 是一个很小的 ​​43kb 启动器,用于 usr\bin\bash.exe (2 mb)。基本上就像一个符号链接,只是为了方便(bin 文件夹包含 bash、sh 和 git)。换句话说,没有区别。我不确定他们为什么要费心制作bin 文件夹版本。可能是由于遗留的PATH 变量原因(也不要用 ls.exe、cat.exe 等感染路径)。但是,是的,我们应该使用 usr/bin/bash.exe 来避免无意义的 bin/bash.exe 包装器。
        • 如果有人无法在工作目录中打开终端,请将最后一行中的地址替换为:"C:\Users\Hp\AppData\Local\Microsoft\WindowsApps\wt.exe" -d .
        【解决方案8】:

        另一个需要注意的项目 - 在 settings.json 我发现如果你不使用 "命令行": "C:/Program Files/Git/bin/bash.exe"

        改为使用: "命令行": "C:/Program Files/Git/git-bash.exe"

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

        可能会让人头疼

        【讨论】:

        • 我该如何解决这个问题?我想“C:/Program Files/Git/git-bash.exe”
        • 由于这些问题,我没有使用 git-bash.exe,所以很遗憾,我无法提供帮助。
        • 这是我遇到的,如果你习惯使用“C:\Program Files\Git\git-bash.exe”,你将不得不开始使用“C:\Program Files \Git\usr\bin\bash.exe”。 “\usr\bin”虽然看起来像一个 Linux 的,但仍然存在,即使您在 Windows 上。
        • 使用 C:\Program Files\Git\bash.exe 在另一个选项卡中打开。谢谢!
        【解决方案9】:

        因为大多数答案要么显示很多不相关的配置,要么不显示配置,所以我创建了自己的答案,试图更加专注。主要基于profile settings referenceArchimedes Trajano's answer

        步骤

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

        注意事项

        • 目前存在您无法使用箭头键(和其他一些键)的问题。不过,它似乎适用于最新的预览版。 (issue #6859)

        • 不必指定"startingDirectory" : "%USERPROFILE%" according to the reference。但是,如果我不指定它,则起始目录会根据我最初启动终端的方式而有所不同。

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

        • 我建议在profiles.defaults 中设置"antialiasingMode": "cleartype"。您必须删除 "useAcrylic" (如果您按照其他答案的建议添加了它)才能使其正常工作。它提高了文本渲染的质量。但是,如果没有useAcrylic,您将无法拥有透明背景。见issue #1298

        • 如果光标有问题,可以尝试其他形状,例如"cursorShape": "filledBox"。请参阅cursor settings 了解更多信息。

        【讨论】:

        • 工作就像一个魅力,tks很多!!
        【解决方案10】:

        这就是我在配置文件 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
        }
        

        【讨论】:

        • 这是简短的最佳答案!
        • 我需要先生成一个新的 Guid(打开 powershell > [guid]::NewGuid() )并使用它而不是上面的那个!但除此之外,它的工作正常:)
        【解决方案11】:

        新版windows终端可以通过GUI配置。

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

        【讨论】:

        • 这里的大多数答案都是正确的。这是最快的一个。也不要忘记添加 bash 图标和起始目录。
        【解决方案12】:

        现在是 2021 年 9 月,幸好最新的 Git Installation installer for Windows(我使用的是 2.33.0.2)已经为我们提供了这个选项,为了我们的懒惰(当然还有方便!)

        在安装 Git 之前请先安装 Windows Terminal,虽然我没有尝试过相反的方法,但最好遵循明智的顺序。如果安装顺序不是这样,请告诉我更新这个答案。

        您可能会在安装阶段 选择组件 的底部找到这个少数复选框,只需勾选那里的复选框即可。

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

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

        【讨论】:

        • 可能要添加 - “如果 Windows 终端正在运行,请关闭并再次启动以使 Git Bash 选项可见”。我不能像往常一样建议编辑Suggested edit queue is full
        【解决方案13】:

        如果有人正在寻找基于 UI 的解决方案。这里是:

        1. 转到终端的设置。

        2. 在右侧,查找“添加新配置文件”选项。 Screenshot for the Terminal's settings.

        3. 选择“新建空配置文件”

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

        • 名称: Git-Bash
        • 命令行:C:\Program Files\Git\bin\bash.exe
        • 起始目录[保留默认]
        • 图标:C:\Program Files\Git\mingw64\share\git\git-for-windows.ico
        • 标签标题:Git-Bash Temrinal Settings completed 如果需要,您还可以浏览正确的文件。
        1. 点击保存按钮。

        最终结果

        Final Result. Bash terminal

        【讨论】:

          【解决方案14】:

          致任何可能会丢失 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
          

          【讨论】:

            猜你喜欢
            • 2020-06-15
            • 2015-10-24
            • 1970-01-01
            • 2016-08-26
            • 1970-01-01
            • 2015-01-18
            • 2021-06-11
            • 2017-01-13
            • 2019-11-05
            相关资源
            最近更新 更多