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

206

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

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

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

Менди
источник
2
Объяснил: donovanbrown.com/post/…
Павел Зентала

Ответы:

302

обзор

  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
Я на самом деле использую пользовательскую иконку icons8.com/icon/set/console/office, но это хороший совет, если вы хотите иконку
Архимед Траяно
1
Мне не хватало параметров `-i -l` для загрузки bash_profile. Спасибо.
ImAtWar
34
И просто чтобы добавить к комментарию @ChrisSandvik, на иконку также можно ссылаться так:"icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico"
Джулиан,
63

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

  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

Окончательный результат ниже: введите описание изображения здесь

Браво Йенг
источник
@ Мэнди К вашему сведению, желаю, чтобы это было полезно для вас.
Браво Юнг
27
Вы также можете получить иконку из 'C: \\ Program Files \\ Git \\ mingw64 \\ share \\ git \\ git-for-windows.ico'
Менди
Спасибо, что показали, что прямая косая черта работает в параметре commandLine, что значительно упрощает ввод команды.
Джим Раден
Есть ли способ, чтобы он не попал прямо в / c / windows / system32?
Бруклин
Спасибо ... помеченный ответ почему-то не сработал для меня, но этот сработал. Мой git установлен в другом разделе, поэтому переменные окружения были проблемой. Этот ответ имеет меньше информации, но гораздо прямолинейнее в достижении цели.
Фелипе Корреа
58

Это полный ответ ( 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}
  • сохраните это в файле 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 иметь другой заголовок, но я сомневаюсь, что оно добавляет что-то еще, поскольку все работает правильно при запуске любого из двоичных файлов.
Митч МакМаберс
7

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

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

Orbittman
источник
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
        },
Sigex
источник
4

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

и вместо этого используйте: «командная строка»: «C: / Program Files / Git / git-bash.exe»

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

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

AB1
источник
4

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

меры

  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. Смотрите выпуск № 1298 .

JojOatXGME
источник
0

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

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

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

LFrigoDeSouza
источник
0

Добавление "%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"в profiles.json.

Grigoriy
источник
Я использовал "commandline" : "C:\\PROGRA~1\\Git\\bin\\bash.exe",. Нет необходимости , чтобы изменить свой путь
ПТРК
Это не работает для меня. Это luches CMD. Но если я наберу "C:\\PROGRA~1\\Git\\bin\\bash.exe"в открывшемся окне терминала, bash запустится.
Григорий
вам нужен дополнительный набор экранированных кавычек вокруг% PROGRAMFILES%. Например:"commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l"
BJury