Добавление Git-Bash в новый терминал Windows

Я пытаюсь добавить новый терминал (Git Bash) в новый терминал Windows, однако не могу заставить его работать.

Я пытался изменить commandline недвижимость в profiles массив для git-bash.exe но не повезло.

У кого-нибудь есть идеи, как заставить это работать?

Заранее спасибо.

19 ответов

Решение

Вот что я сделал

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

ключевая вещь, чтобы отметить НЕТ guid (он автоматически генерируется после сохранения) -i -l чтобы убедиться, что .bash_profile загружается

Этот "гид" может быть использован в globals

"defaultProfile" : "{fb39ce23-a468-4ee2-bc56-7a940f799513}",

Таким образом, вы можете нажать CtrlShiftT

Одна вещь, которую я изменил, я использовал %PROGRAMFILES%\git\usr\bin\bash.exe по следующим причинам:

  • для поддержки пользователей, которые не использовали C:\Program Files что может случиться для модернизированных систем.
  • git\bin\bash.exe порождает другой процесс, удаляя, что мы экономим около 10 МБ на процесс в соответствии с Process Explorer

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

Есть следующие вещи, чтобы сделать.

  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

Поместите 32x32 PNG/ иконки в эту папку, а затем вprofile.jsonВы можете ссылаться на ресурс изображения с путем, начинающимся с ms-appdata:// .

Обратите внимание, что, пожалуйста, убедитесь, чтоGuidправильно и соответствует соответствующим правильным конфигам.

  1. Тест Git Bash хорошо работает вWindows Terminal

Окончательный результат ниже:

Это полный ответ (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}
  • сохраните это в файле any_filename.reg и запустите.

Это сентябрь 2021 года, полностью спасибо, что последний установщик Git Installation для Windows (мой использовал 2.33.0.2) уже имеет этот вариант для нас, ради нашей лени (и удобства, конечно!)

Пожалуйста, установите Windows Terminal перед установкой Git, хотя я не пробовал иного, но лучше следуйте разумному порядку. Если порядок установки не соответствует требованиям, дайте мне знать, чтобы обновить этот ответ.

Вы можете найти этот небольшой флажок внизу на этапе установки « Выбор компонентов», просто установите этот флажок, и все готово.

В settings.jsonфайл будет автоматически добавлен в профиль Git Bash с правильным значком Git Bash. Мой сгенерированный профиль Git Bash довольно стандартный и минимальный.

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

Поскольку большинство ответов либо показывают много несвязанной конфигурации, либо не показывают конфигурацию, я создал свой собственный ответ, который пытается быть более сфокусированным. В основном это основано на справке по настройкам профиля и ответе Архимеда Траяно.

Шаги

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

Примечания

  • В настоящее время существует проблема, заключающаяся в том, что вы не можете использовать клавиши со стрелками (и некоторые другие клавиши). Однако, похоже, он работает с последней предварительной версией. ( выпуск #6859)

  • Указание "startingDirectory" : "%USERPROFILE%"не должно быть по ссылке. Однако, если я не укажу его, начальный каталог отличался в зависимости от того, как я изначально запускал терминал.

  • Настройки, которые должны применяться ко всем терминалам, можно указать в profiles.defaults.

  • Рекомендую установить "antialiasingMode": "cleartype" в profiles.defaults. Вы должны удалить"useAcrylic"(если вы добавили его, как это предлагается некоторыми другими ответами), чтобы он работал. Улучшает качество отрисовки текста. Однако у вас не может быть прозрачного фона безuseAcrylic. См. Issue #1298.

Вот как я добавил свой в таблицу 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
}

В случае, если кто-то ищет решение на основе пользовательского интерфейса. Вот:

  1. Зайдите в настройки Терминала.

  2. Справа внизу найдите опцию «Добавить новый профиль». Скриншот настроек Терминала.

  3. Выберите «Новый пустой профиль».

  4. Теперь заполните поля информацией о вашем bash. Если ваши места установки являются местами по умолчанию, вы можете использовать их:

  • Имя: Гит-Баш
  • Командная строка : C:\Program Files\Git\bin\bash.exe
  • Стартовый каталог : [Оставить по умолчанию]
  • Значок : C:\Program Files\Git\mingw64\share\git\git-for-windows.ico
  • Заголовок вкладки: Настройки Git-BashTemrinal завершены. Вы также можете просмотреть нужные файлы, если вам это нужно.
  1. Нажмите кнопку «Сохранить».

Конечный результат

Конечный результат. Баш терминал

Еще один момент, на который стоит обратить внимание - в settings.json я обнаружил, если вы не используете "командную строку": "C:/Program Files/Git/bin/bash.exe"

и вместо этого используйте: "commandline": "C:/Program Files/Git/git-bash.exe"

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

Может спасти кого-то от головной боли

Измените параметр профилей на "commandline": "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"

Это работает для меня и позволяет запускать мои сценарии автозаполнения псевдонимов.bash_profile.

Новую версию терминала Windows можно настроить через его графический интерфейс.

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

Если вы хотите отобразить значок и используете темную тему. Это означает, что иконка, представленная выше, выглядит не очень хорошо. Тогда вы можете найти значок здесь

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

Начиная с Git для Windows2.42.0или более поздней версии, которая вышла в августе 2023 г. Я думаю, теперь вы можете просто перезапустить установщик и установить флажок(NEW!) Add a Git Bash Profile to Windows Terminal, как показано здесь синим цветом наGit 2.42.0настраивать:

Вот и все!

Впервые я задокументировал это в своих инструкциях здесь: другие рекомендуемые настройки, которые следует выбрать при установке Git для Windows, см. в моих личных инструкциях по установке здесь: Установка Git для Windows .

Внизу у меня есть раздел под названием «Исправить ~( HOME) dir в Git Bash, если необходимо, что вам тоже может понадобиться, еслиecho ~не показывает ваш правильный домашний каталог.

Теперь в Терминале есть возможность добавить новый профиль без изменения настроек JSON.

Перейдите в «Настройки» из раскрывающегося меню, как показано ниже.

В разделе «Профили» на боковой панели выберите «Добавить новый профиль». Нажмите «+Новый пустой профиль». Откроется следующий экран.

Добавьте детали, как показано на экране ниже, для git bash или любого другого bash.

Вот и все!

Насколько я знаю из моей текущей версии терминала Windows 1.15.2874.0, вы можете получить то, что хотите, простым щелчком вручную, чтобы настроить его. Предпосылки

  1. ваш клиент git bash установлен.
  2. по крайней мере версия терминала Windows 1.15.2874.0 или выше.

Затем завершите настройку, выполнив следующие действия.

  1. Откройте терминал Windows и найдите «Настройки» в раскрывающемся списке в правом верхнем углу строки меню (или используйте сочетание клавиш ctrl+,);
  2. Нажмите «Добавить новый профиль» в нижней части левого столбца, после чего автоматически откроется экран шаблона настроек.
  3. интерактивным щелчком мыши вы хотите установить значение «имя», «путь к исполняемому файлу командной строки», «каталог запуска», «значок». Например, я установил для себя"gitBash","C:\Program Files\Git\bin\bash.exe","%USERPROFILE%"и "%USERPROFILE%" в порядке настройки."C:\Program Files\Git\mingw64\share\git\git-for-windows.ico".
  4. сохранять.

Следующие скриншоты приведены для справки.

Парень из Linux, сюда, извините, я опоздал; Я просто впервые устанавливаю git-bash и смотрю, какой должна быть его команда в терминале Windows.

Насколько я знаю

  • Cygwin — это не Windows, но он предоставляет уровень перевода POSIX (), так что все эти исполняемые файлы, отличные от Windows, могут работать. Даже когда новая компьютерная программа скомпилирована и построена с помощью cygwin, она все равно оказывается исполняемым файлом, отличным от Windows, и ей все еще нужноcygwin*.dllбежать.
  • MSYS2 — это в основном Windows с несколькими инструментами, которые, вероятно, трудно портировать, оставшись не для Windows и требуя для запуска уровня перевода POSIX (msys*.dll); но большинство программ на самом деле являются собственными исполняемыми файлами Windows. Даже когда компилируется и создается новая компьютерная программа, насколько я понимаю, получается родной для Windows *.exe.

Но я до сих пор не знаю, насколько важно, чтобы некоторые из этихMSYSTEM*иMINGW*переменные среды должны быть установлены или нет, когда я все равно буду использовать компилятор MINGW.

Я заметил, что в этой ветке продолжают появляться обе командные строки, а именно:./bin/bashи./usr/bin/bash; Итак, я пошел дальше и запустил их, чтобы сравнить их окружение... они могут оказаться совершенно разными.

Да будет известно, что ДО запуска любого из приведенных ниже снарядов у меня уже естьC:\Git\mingw64\binиC:\Git\usr\binкак часть системной переменнойPATH; Я делаю это, потому что хочу иметь возможность использовать команды bash непосредственно из CMD. Но я не думаю, что это как-то влияет на результаты ниже.

                                              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; мы увидим.

Добавление "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i" не работает для меня Из-за символа пробела (который является разделителем в cmd) в%PROGRAMFILES% терминал выполняет команду "C:\Program" вместо "C:\Program Files\Git\bin\bash.exe -l -i", Решение должно быть что-то вроде добавления кавычек в файл JSON, но я не понял, как. Единственное решение - добавить "C:\Program Files\Git\bin" в%PATH% и записать "commandline": "bash.exe" в профилях

Я сделал следующее:

  1. Добавьте "%programfiles%\Git\Bin" в вашу PATH
  2. В файле profiles.json установите желаемую командную строку как "командная строка": "sh --cd-to-home"
  3. Перезагрузите терминал Windows

Это сработало для меня.

Добавление приведенного ниже кода в файл settings.json решит проблему.

Если вы отметили опцию «Добавить в терминал Windows» при установке git и вы можете увидеть опцию git bash в параметрах «дублировать профиль».

Это сработает, так как я тоже столкнулся с подобной проблемой.

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

Всем, кто может страдать от отсутствия истории 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
Другие вопросы по тегам