Додавання Git-Bash до нового терміналу Windows


205

Я намагаюся додати новий термінал (Git Bash) до нового терміналу Windows, однак я не можу змусити його працювати.

Я спробував змінити commandlineвластивість у profilesмасиві, git-bash.exeале не пощастило.

Хтось має ідею, як змусити це працювати?


Відповіді:


301

Огляд

  1. Відкрийте налаштування за допомогою ctrl + ,
  2. Ви хочете додати один із варіантів профілів нижче (залежно від того, яку версію git ви встановили) до "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. Git для Windows

    {
        "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. Git для Windows від Scoop

Якщо ви використовуєте совок

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

Примітки

  • зробити свій власний guidстаном на https://github.com/microsoft/terminal/pull/2475 це більше не створюється.
  • guidможе бути використаний в в globals> defaultProfileтак що ви можете натиснути ви можете натиснути CtrlShiftT або запустити термінал Windows , і він запуститься Баш за замовчуванням
"defaultProfile" : "{00000000-0000-0000-ba54-000000000001}",
  • -i -lщоб переконатися, що .bash_profileвін завантажений
  • використовувати змінні середовища, щоб вони могли правильно відображати різні системи.
  • цілі, git\bin\bash.exeщоб уникнути нерестування додаткових процесів, що дозволяє економити близько 10 Мб на процес відповідно до Process Explorer порівняно з використанням bin / bash або git-bash

У мене є моя конфігурація, яка використовує Scoop в https://gist.github.com/trajano/24f4edccd9a997fad8b4de29ea252cc8


2
Зауважте, що bash.exe знаходиться під git \\ bin, а не безпосередньо у каталозі Git, на відміну від git-bash.exe. Це спочатку мене спонукало.
Майк Генрі

70
якщо ви хочете додати правильний значок, це те, що я встановив поле значка:"icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"
Кріс Сандвік

1
Я фактично використовую власну іконку icon8.com/icon/set/console/office, але це хороша порада, якщо ви хочете піктограму
Архімед

1
Мені не вистачало параметрів `-i -l` для завантаження bash_profile. Дякую.
ImAtWar

34
І лише щоб додати коментар від @ChrisSandvik, на піктограму також можна посилатися так:"icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico"
Julian

62

Нижче є що робити.

  1. Переконайтесь, що ваша gitкоманда може бути успішно виконана в CMD

Це означає, що вам потрібно додати gitшлях до інсталяції git або пізніше додати його до системного середовища.

введіть тут опис зображення

  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

Помістіть PNG / піктограми 32x32 в цю папку, а потім profile.jsonви можете посилатись на ресурс зображення шляхом шляху, починаючи з ms-appdata: //

Зауважте, що переконайтеся, що значення Guidправильне та відповідне відповідним правильним конфігураціям.

  1. Тестовий git bash добре працює в Windows Terminal

Кінцевий результат нижче: введіть тут опис зображення


@Mendy FYI, бажаю, щоб це було вам корисно.
Браво Юнг

27
Ви також можете отримати іконку з "C: \\ Файли програм \\ Git \\ mingw64 \\ поділитися \\ git \\ git-for-windows.ico"
Менді

Дякуємо Вам за те, що показали, що косої риски в прямому напрямку працюють у параметрі commandLine, що значно полегшує введення команди.
Джим Раден

Чи є спосіб не перейти до / c / windows / system32?
Бруклін

Дякую ... помічена відповідь чомусь не працювала для мене, але ця так і зробила. У мене git встановлений на іншому розділі, тому змінні середовища були проблемою. Ця відповідь має менше інформації, але набагато пряма вперед щодо досягнення мети.
Феліпе Кореа

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"

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}
  • збережіть це у файлі what_filename.reg та запустіть його.

2
Для чого використовується версія MSYS Git\\usr\\bin\\bash.exe замість Git для MINGW версії Windows за замовчуванням Git\\bin\\bash.exe?
Кіт Рассел

1
@KeithRussell Я насправді не помітив повільного часу, але якщо я пізніше, я можу перевірити їх.
Алтін

2
Солодке! Просто скопіюйте та вставте. Ікони працюють, кольори працюють, ідеально.
Corepuncher

2
@KeithRussell я досліджував і знайшов stackoverflow.com/a/56844443/8874388 , і можу підтвердити , що він говорить. bin\bash.exeявляє собою крихітний пусковий пристрій на 43 кб для usr\bin\bash.exe(2 Мб). В основному як символьне посилання, просто для зручності ( 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 я виявив, якщо ви не використовуєте "commandline": "C: / Program Files / Git / bin / bash.exe"

а замість цього використовуйте: "commandline": "C: / Program Files / Git / git-bash.exe"

оболонка Git відкриється в незалежному вікні поза терміналом Windows, а не на вкладці - що не є бажаною поведінкою. Крім того, вкладку в терміналі Windows, що відкриється, також потрібно буде закрити вручну, оскільки вона відображатиме інформацію про процес, що вийшов - [процес, який вийшов з кодом 3221225786] тощо.

Може врятувати когось головний біль


3

Оскільки більшість відповідей або показують багато конфігурації, яка не пов'язана, або взагалі не показують конфігурацію, ось моя власна відповідь, яка намагається бути більш зосередженою. Він грунтується головним чином на відповідь Архімеда 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. На profile.json встановіть потрібний командний рядок як "командний рядок": "sh --cd-to-home"
  3. Перезапустіть термінал Windows

Це працювало для мене.


0

Додавання "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"не працює для мене. Через символ пробілу (який є роздільником у cmd) у% PROGRAMFILES% термінал виконує команду "C:\Program"замість "C:\Program Files\Git\bin\bash.exe -l -i". Рішення має бути чимось на зразок додавання лапок у файл json, але я не зрозумів як. Єдине рішення - додати "C: \ програмні файли \ Git \ bin" до% PATH% та записати "commandline": "bash.exe"у профілі.json


Я звик "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"
БЮР
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.