Dodanie Git-Bash do nowego terminala Windows

205

Próbuję dodać nowy terminal (Git Bash) do nowego terminala Windows, jednak nie mogę go uruchomić.

Próbowałem zmienić commandlinewłaściwość w profilestablicy na, git-bash.exeale bez powodzenia.

Czy ktoś ma pomysł, jak to działa?

Mendy
źródło
2
Wyjaśnienie: donovanbrown.com/post/…
Paweł Zentala

Odpowiedzi:

301

Przegląd

  1. Otwórz ustawienia za pomocą ctrl + ,
  2. Będziesz chciał dołączyć jedną z poniższych opcji profili (w zależności od zainstalowanej wersji git) do "list":części settings.jsonpliku

    {
        "$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>
            ]
        }
    }
    

Opcje profilu

1. Git dla 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 dla Windows z Scoop

Jeśli używasz czerpaka

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

Uwagi

  • utwórz własne guidod https://github.com/microsoft/terminal/pull/2475 to nie jest już generowane.
  • guidmożna stosować w w globals> defaultProfilewięc można nacisnąć można nacisnąć przycisk CtrlShiftT lub uruchomić terminal systemu Windows i będzie można go uruchomić bash domyślnie
"defaultProfile" : "{00000000-0000-0000-ba54-000000000001}",
  • -i -laby upewnić się, że .bash_profilezostanie załadowany
  • używają zmiennych środowiskowych, aby mogły poprawnie mapować do różnych systemów.
  • cel, git\bin\bash.exeaby uniknąć tworzenia dodatkowych procesów, co oszczędza około 10 MB na proces zgodnie z Process Explorer w porównaniu do używania bin / bash lub git-bash

Mam konfigurację używającą Scoop w https://gist.github.com/trajano/24f4edccd9a997fad8b4de29ea252cc8

Archimedes Trajano
źródło
2
Zauważ, że bash.exe znajduje się w git \\ bin, a nie bezpośrednio w katalogu Git, w przeciwieństwie do git-bash.exe. To na początku mnie zaskoczyło.
Mike Henry
70
jeśli chcesz dodać poprawną ikonę, tak ustawiłem pole ikony na:"icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"
Chris Sandvik
1
Właściwie używam niestandardowej ikony icons8.com/icon/set/console/office, ale jest to dobra wskazówka, jeśli chcesz tę ikonę
Archimedes Trajano
1
Brakowało mi opcji `-i -l` dla załadowanego profilu bash_profile. Dzięki.
ImAtWar
34
Aby dodać do komentarza @ChrisSandvik, do ikony można również odwoływać się w następujący sposób:"icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico"
Julian,
62

Poniżej znajdują się rzeczy do zrobienia.

  1. Upewnij się, że gitpolecenie można pomyślnie uruchomić w CMD

Oznacza to, że musisz dodać gitdo ścieżki podczas instalacji gita lub dodać go do środowiska systemowego później.

wprowadź opis obrazu tutaj

  1. Zaktualizuj plik konfiguracyjny profile.json

Otwórz Settings, dodaj następujący fragment w słowie 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 
        }

Ikonę można pobrać tutaj: git-bash_32px.ico

Możesz dodać ikony karty do tej lokalizacji:

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

Umieść 32x32 PNG / icons w tym folderze, a następnie profile.jsonmożesz odwołać się do zasobu obrazu ze ścieżką zaczynającą się od ms-appdata: //.

Zauważ, że upewnij się, że Guidjest poprawny i pasuje do odpowiednich poprawnych konfiguracji.

  1. Test git bash działa dobrze w Windows Terminal

Ostateczny wynik jest poniżej: wprowadź opis obrazu tutaj

Bravo Yeung
źródło
@ Mendy FYI, życzę, aby było pomocne dla Ciebie.
Bravo Yeung
27
Możesz także pobrać ikonę z „C: \\ Program Files \\ Git \\ mingw64 \\ share \\ git \\ git-for-windows.ico”
Mendy
Dziękujemy za pokazanie, że ukośniki działają w parametrze commandLine, co znacznie ułatwia wpisywanie polecenia.
Jim Raden
Czy jest sposób, aby nie iść bezpośrednio do / c / windows / system32?
Brooklyn
Dziękuję ... zaznaczona odpowiedź z jakiegoś powodu nie zadziałała, ale ta zadziałała. Mam zainstalowanego gita na innej partycji, więc zmienne środowiskowe były problemem. Ta odpowiedź zawiera mniej informacji, ale jest bardzo prosta w osiągnięciu celu.
Felipe Correa
57

To jest pełna odpowiedź ( GitBash + schemat kolorów + ikona + menu kontekstowe )

1) Ustaw profil domyślny:

"globals" : 
{
    "defaultProfile" : "{00000000-0000-0000-0000-000000000001}",
    ...

2) Dodaj profil 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) Dodaj schemat kolorów 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) Aby dodać menu kontekstowe prawego przycisku myszy „Tutaj Terminal 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\""
  • zamień {YOUR_WINDOWS_USERNAME}
  • utwórz folder ikon, umieść tam ikonę i zastąp {YOUR_ICONS_FOLDER}
  • zapisz to w pliku cokolwiek_nazwa_pliku.reg i uruchom.
Altin
źródło
2
Dlaczego używasz wersji MSYS Git\\usr\\bin\\bash.exezamiast Git dla domyślnej wersji MINGW systemu Windows Git\\bin\\bash.exe?
Keith Russell
1
@KeithRussell Tak naprawdę nie zauważyłem żadnego wolnego czasu, ale jeśli to zrobię później, mogę przetestować między nimi.
Altin
2
Słodkie! Po prostu skopiuj i wklej. Ikony działają, kolory działają, idealnie.
Corepuncher
2
@KeithRussell Zbadałem i znalazłem stackoverflow.com/a/56844443/8874388 i mogę potwierdzić, co mówi. bin\bash.exeto malutki program uruchamiający 43kb dla usr\bin\bash.exe(2 MB). Zasadniczo jak dowiązanie symboliczne, tylko dla wygody ( binfolder zawiera bash, sh i git). Innymi słowy, nie ma różnicy. Nie jestem pewien, dlaczego w ogóle zadali sobie trud tworzenia binwersji folderu. Być może z powodu starszych PATHzmiennych (aby nie zainfekować ścieżki za pomocą ls.exe, cat.exe itp.). Ale tak, powinniśmy używać, usr/bin/bash.exeaby uniknąć bezsensownego bin/bash.exeopakowania.
Mitch McMabers
1
@KeithRussell Ponadto, jeśli klikniesz prawym przyciskiem myszy nagłówek kolumny w Menedżerze zadań Windows - zakładka Szczegóły i wybierz kolumny i włączysz kolumnę „Wiersz poleceń”, zobaczysz, że Git\usr\bin\bash.exejest uruchamiana bez żadnych dodatkowych argumentów. Więc jedyną potencjalną rzeczą, jaką Git\bin\bash.exerobi opakowanie, jest wstrzyknięcie zmiennych środowiskowych przed uruchomieniem, ale myślę, że jedyną rzeczą, którą wstrzykuje, jest $MSYSTEM = MINGW64zmienna, która powoduje, że monit PS1 ma inny tytuł, ale wątpię, aby wstrzyknął cokolwiek innego, ponieważ wszystko działa poprawnie podczas uruchamiania któregokolwiek z plików binarnych.
Mitch McMabers
6

Zmień parametr profiles na "commandline": "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"

To działa dla mnie i pozwala na uruchamianie moich skryptów autouzupełniania aliasu .bash_profile.

Orbittman
źródło
5

Jeśli chcesz wyświetlić ikonę i używasz ciemnego motywu. Co oznacza, że ​​ikona podana powyżej nie wygląda tak dobrze. Następnie możesz znaleźć ikonę tutaj

C:\Program Files\Git\mingw64\share\git\git-for-windows Skopiowałem to do.

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

i nazwał go git-bash_32pxzgodnie z powyższą sugestią.

Kontroluj krycie za pomocą CTRL + SHIFT + przewijanie.

        {
            "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
źródło
3

Kolejna rzecz warta uwagi - w settings.json odkryłem, że jeśli nie używasz „wiersza poleceń”: „C: / Program Files / Git / bin / bash.exe”

zamiast tego użyj: "commandline": "C: / Program Files / Git / git-bash.exe"

powłoka Git otworzy się w niezależnym oknie poza terminalem Windows zamiast na karcie - co nie jest pożądanym zachowaniem. Ponadto zakładka w terminalu Windows, która zostanie otwarta, będzie również musiała zostać zamknięta ręcznie, ponieważ wyświetli informacje o zakończeniu procesu - [proces zakończony z kodem 3221225786] itd.

Może uratować komuś ból głowy

AB1
źródło
3

Ponieważ większość odpowiedzi albo pokazuje wiele konfiguracji, które nie są powiązane, albo w ogóle nie pokazują konfiguracji, oto moja własna odpowiedź, która stara się być bardziej skoncentrowana. Opiera się głównie na odpowiedzi Archimedesa Trajano i odniesienia do ustawień profilu .

Kroki

  1. Otwórz PowerShell i wprowadź, [guid]::NewGuid()aby wygenerować nowy identyfikator GUID. Użyjemy go w kroku 3.

    > [guid]::NewGuid()
    
    Guid
    ----
    a3da8d92-2f3f-4e36-9714-98876b6cb480
  2. Otwórz ustawienia terminala Windows . ( CTRL+ ,)

  3. Dodaj następujący obiekt JSON do profiles.list. Zastąp guidtym, który wygenerowałeś w kroku 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%"
    },

Uwagi

  • Określenie "startingDirectory" : "%USERPROFILE%"nie powinno być konieczne w zależności od odniesienia . Jeśli jednak tego nie określę, katalog początkowy był inny w zależności od tego, jak początkowo uruchomiłem terminal.

  • Ustawienia, które będą miały zastosowanie do wszystkich terminali, można określić w profiles.defaults.

  • Polecam ustawić "antialiasingMode": "cleartype"w profiles.defaults. Musisz usunąć "useAcrylic"(jeśli dodałeś go zgodnie z sugestiami innych odpowiedzi), aby działał. Poprawia jakość renderowania tekstu. Nie możesz jednak mieć przezroczystego tła bez useAcrylic. Zobacz wydanie nr 1298 .

JojOatXGME
źródło
0

Zrobiłem co następuje:

  1. Dodaj „% programfiles% \ Git \ Bin” do swojej PATH
  2. W pliku profiles.json ustaw żądany wiersz polecenia jako „commandline”: „sh --cd-to-home”
  3. Uruchom ponownie terminal Windows

U mnie to zadziałało.

LFrigoDeSouza
źródło
0

Dodawanie "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"nie działa dla mnie. Z powodu symbolu spacji (który jest separatorem w cmd) w terminalu% PROGRAMFILES% wykonuje polecenie "C:\Program"zamiast "C:\Program Files\Git\bin\bash.exe -l -i". Rozwiązaniem powinno być coś w rodzaju dodania cudzysłowów w pliku json, ale nie wiedziałem, jak to zrobić. Jedynym rozwiązaniem jest dodanie „C: \ Program Files \ Git \ bin” do% PATH% i zapisanie "commandline": "bash.exe"w plikach profiles.json

Grigoriy
źródło
Użyłem "commandline" : "C:\\PROGRA~1\\Git\\bin\\bash.exe",. Nie ma potrzeby modyfikowania mojej ścieżki
PTRK,
To nie działa na mnie. To lauches cmd. Ale jeśli napiszę "C:\\PROGRA~1\\Git\\bin\\bash.exe"w otwartym oknie terminala, uruchamia się bash.
Grigoriy
potrzebujesz dodatkowego zestawu cudzysłowów ze zmianą znaczenia wokół% PROGRAMFILES%. np .:"commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l"
BJury