Hinzufügen von Git-Bash zum neuen Windows-Terminal

204

Ich versuche, dem neuen Windows-Terminal ein neues Terminal (Git Bash) hinzuzufügen, kann es jedoch nicht zum Laufen bringen.

Ich habe versucht, die commandlineEigenschaft im profilesArray zu ändern , git-bash.exeaber kein Glück.

Hat jemand eine Idee, wie man das zum Laufen bringt?

Mendy
quelle
2
Erklärt: donovanbrown.com/post/…
Pawel Zentala

Antworten:

299

Überblick

  1. Öffnen Sie die Einstellungen mit ctrl + ,
  2. Sie möchten eine der folgenden Profiloptionen (abhängig von der von Ihnen installierten Git-Version) an den "list":Teil der settings.jsonDatei anhängen

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

Profiloptionen

1. Git für 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 für Windows von Scoop

Wenn Sie Schaufel verwenden

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

Anmerkungen

  • Machen Sie Ihre eigenen guidab https://github.com/microsoft/terminal/pull/2475 dies wird nicht mehr generiert.
  • Das guidkann in globals> verwendet werden, defaultProfiledamit Sie drücken können. Sie können CtrlShiftT ein Windows-Terminal drücken oder starten und es startet standardmäßig bash
"defaultProfile" : "{00000000-0000-0000-ba54-000000000001}",
  • -i -lum sicherzustellen, dass .bash_profiledas geladen wird
  • Verwenden Sie Umgebungsvariablen, damit sie verschiedenen Systemen korrekt zugeordnet werden können.
  • Ziel ist es, git\bin\bash.exezu vermeiden, dass zusätzliche Prozesse entstehen, was laut Process Explorer etwa 10 MB pro Prozess einspart, verglichen mit der Verwendung von bin / bash oder git-bash

Ich habe meine Konfiguration, die Scoop verwendet, in https://gist.github.com/trajano/24f4edccd9a997fad8b4de29ea252cc8

Archimedes Trajano
quelle
2
Beachten Sie, dass sich bash.exe im Gegensatz zu git-bash.exe unter git \\ bin befindet und nicht direkt im Git-Verzeichnis. Das hat mich zuerst gestolpert.
Mike Henry
70
Wenn Sie das richtige Symbol hinzufügen möchten, habe ich das "icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"
Chris Sandvik
1
Ich verwende tatsächlich ein benutzerdefiniertes Symbol icons8.com/icon/set/console/office, aber es ist ein guter Tipp, wenn Sie das Symbol wollen
Archimedes Trajano
1
Mir fehlten die Optionen "-i -l" für das zu ladende bash_profile. Vielen Dank.
ImAtWar
33
Und nur um den Kommentar von @ChrisSandvik hinzuzufügen, kann das Symbol auch wie folgt referenziert werden:"icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico"
Julian
62

Es gibt unten Dinge zu tun.

  1. Stellen Sie sicher, dass Ihr gitBefehl in CMD erfolgreich ausgeführt werden kann

Das bedeutet, dass Sie gitden Pfad bei der Installation von git hinzufügen oder später zur Systemumgebung hinzufügen müssen.

Geben Sie hier die Bildbeschreibung ein

  1. Aktualisieren Sie die Konfigurationsdatei profile.json

Öffnen SettingsSie das folgende Snippet und fügen Sie es in das Wort ein 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 
        }

Das Symbol erhalten Sie hier: git-bash_32px.ico

Sie können diesem Speicherort Symbole für die Registerkarte hinzufügen:

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

Fügen Sie 32x32 PNG / Symbole in diesen Ordner ein, und dann profile.jsonkönnen Sie auf die Bildressource mit dem Pfad verweisen, der mit ms-appdata: // beginnt.

Beachten Sie bitte, dass das Guidkorrekt ist und mit den entsprechenden korrekten Konfigurationen übereinstimmt.

  1. Test Git Bash funktioniert gut in Windows Terminal

Das Endergebnis ist unten: Geben Sie hier die Bildbeschreibung ein

Bravo Yeung
quelle
@ Mendy FYI, wünschte, es wäre hilfreich für Sie.
Bravo Yeung
27
Sie können das Symbol auch von 'C: \\ Programme \\ Git \\ mingw64 \\ share \\ git \\ git-for-windows.ico'
Mendy
Vielen Dank, dass Sie gezeigt haben, dass Schrägstriche im Parameter commandLine funktionieren, was die Eingabe des Befehls erheblich erleichtert.
Jim Raden
Gibt es eine Möglichkeit, es nicht direkt in / c / windows / system32 zu übertragen?
Brooklyn
Vielen Dank ... die markierte Antwort hat aus irgendeinem Grund bei mir nicht funktioniert, aber diese hat funktioniert. Ich habe mein Git auf einer anderen Partition installiert, daher waren die Umgebungsvariablen ein Problem. Diese Antwort enthält weniger Informationen, ist jedoch sehr einfach, um das Ziel zu erreichen.
Felipe Correa
57

Dies ist die vollständige Antwort ( GitBash + Farbschema + Symbol + Kontextmenü )

1) Standardprofil festlegen:

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

2) GitBash-Profil hinzufügen

"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) Fügen Sie das GitBash-Farbschema hinzu

"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) Um ein Kontextmenü mit der rechten Maustaste hinzuzufügen "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\""
  • Ersetzen Sie {YOUR_WINDOWS_USERNAME}
  • Erstellen Sie einen Symbolordner , platzieren Sie das Symbol dort und ersetzen Sie {YOUR_ICONS_FOLDER}
  • Speichern Sie dies in einer Datei " Whatever_filename.reg " und führen Sie sie aus.
Altin
quelle
2
Warum verwenden Sie die MSYS-Version Git\\usr\\bin\\bash.exeanstelle von Git für die Standard-MINGW-Version von Windows Git\\bin\\bash.exe?
Keith Russell
1
@KeithRussell Ich habe keine langsame Zeit bemerkt, aber wenn ich es später mache, kann ich zwischen ihnen testen.
Altin
2
Süss! Einfach kopiert und eingefügt. Symbole funktionieren, Farben funktionieren, perfekt.
Corepuncher
2
@KeithRussell ich untersucht und festgestellt , stackoverflow.com/a/56844443/8874388 und kann bestätigen , was es sagt. bin\bash.exeist ein winziger 43kb Launcher für usr\bin\bash.exe(2 mb). Grundsätzlich wie ein Symlink, nur der binEinfachheit halber (der Ordner enthält bash, sh und git). Mit anderen Worten, es gibt keinen Unterschied. Ich bin mir nicht sicher, warum sie sich überhaupt die Mühe gemacht haben, die binOrdnerversion zu erstellen. Möglicherweise aus PATHGründen der Legacy- Variablen (um den Pfad nicht auch mit ls.exe, cat.exe usw. zu infizieren). Aber ja, wir sollten verwenden usr/bin/bash.exe, um den sinnlosen bin/bash.exeWrapper zu vermeiden .
Mitch McMabers
1
@KeithRussell Wenn Sie mit der rechten Maustaste auf die Spaltenüberschrift in der Registerkarte Windows Task-Manager - Details klicken und Spalten auswählen und die Spalte "Befehlszeile" aktivieren, können Sie sehen, dass sie Git\usr\bin\bash.exeohne zusätzliche Argumente gestartet wird. Das einzige mögliche, was der Git\bin\bash.exeWrapper tut, ist das Injizieren von Umgebungsvariablen vor dem Start, aber ich denke, das einzige, was er injiziert, ist die $MSYSTEM = MINGW64Variable, die bewirkt, dass die PS1-Eingabeaufforderung einen anderen Titel hat, aber ich bezweifle, dass sie etwas anderes injiziert, da alles ordnungsgemäß funktioniert beim Starten einer der Binärdateien.
Mitch McMabers
6

Ändern Sie den Profilprofil in "commandline": "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"

Dies funktioniert für mich und ermöglicht die Ausführung meiner Alias-Autocomplete-Skripte für den Alias ​​.bash_profile.

Orbittman
quelle
5

Wenn Sie ein Symbol anzeigen möchten und ein dunkles Thema verwenden. Das bedeutet, dass das oben angegebene Symbol nicht so gut aussieht. Dann finden Sie das Symbol hier

C:\Program Files\Git\mingw64\share\git\git-for-windows Ich habe es kopiert.

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

und nannte es git-bash_32pxwie oben vorgeschlagen.

Steuern Sie die Deckkraft mit STRG + UMSCHALT + Scrollen.

        {
            "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
quelle
3

Ein weiteres zu beachtendes Element - in settings.json habe ich festgestellt, dass Sie "Befehlszeile" nicht verwenden: "C: / Programme / Git / bin / bash.exe"

und verwenden Sie stattdessen: "commandline": "C: / Programme / Git / git-bash.exe"

Die Git-Shell wird in einem unabhängigen Fenster außerhalb des Windows-Terminals anstatt auf einer Registerkarte geöffnet - was nicht das gewünschte Verhalten ist. Darüber hinaus muss die Registerkarte im Windows-Terminal, die geöffnet wird, auch manuell geschlossen werden, da Informationen zum Beenden des Prozesses angezeigt werden - [Prozess mit Code 3221225786 beendet] usw.

Könnte jemandem Kopfschmerzen ersparen

AB1
quelle
2

Da die meisten Antworten entweder viele Konfigurationen zeigen, die nicht verwandt sind, oder die Konfiguration überhaupt nicht zeigen, ist hier meine eigene Antwort, die versucht, fokussierter zu sein. Es basiert hauptsächlich auf der Antwort von Archimedes Trajano und der Referenz zu den Profileinstellungen .

Schritte

  1. Öffnen Sie PowerShell und geben Sie ein [guid]::NewGuid(), um eine neue GUID zu generieren. Wir werden es in Schritt 3 verwenden.

    > [guid]::NewGuid()
    
    Guid
    ----
    a3da8d92-2f3f-4e36-9714-98876b6cb480
  2. Öffnen Sie die Einstellungen des Windows-Terminals . ( CTRL+ ,)

  3. Fügen Sie das folgende JSON-Objekt hinzu profiles.list. Ersetzen guidSie ihn durch den in Schritt 1 generierten.

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

Anmerkungen

  • Die Angabe "startingDirectory" : "%USERPROFILE%"sollte laut Referenz nicht erforderlich sein . Wenn ich es jedoch nicht spezifiziere, war das Startverzeichnis unterschiedlich, je nachdem, wie ich das Terminal ursprünglich gestartet habe.

  • Einstellungen, die für alle Terminals gelten sollen, können in angegeben werden profiles.defaults.

  • Ich empfehle zu setzen "antialiasingMode": "cleartype"in profiles.defaults. Sie müssen entfernen "useAcrylic"(wenn Sie es hinzugefügt haben, wie in einigen anderen Antworten vorgeschlagen), damit es funktioniert. Es verbessert die Qualität der Textwiedergabe. Ohne können Sie jedoch keinen transparenten Hintergrund haben useAcrylic. Siehe Ausgabe Nr. 1298 .

JojOatXGME
quelle
0

Ich habe folgendes getan:

  1. Fügen Sie Ihrem PATH "% programfiles% \ Git \ Bin" hinzu
  2. Legen Sie in der Datei profile.json die gewünschte Befehlszeile als "Befehlszeile" fest: "sh --cd-to-home"
  3. Starten Sie das Windows-Terminal neu

Es hat bei mir funktioniert.

LFrigoDeSouza
quelle
0

Hinzufügen "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"funktioniert bei mir nicht. Aufgrund des Leerzeichensymbols (das in cmd ein Trennzeichen ist) in% PROGRAMFILES führt% terminal den Befehl "C:\Program"anstelle von aus "C:\Program Files\Git\bin\bash.exe -l -i". Die Lösung sollte so etwas wie das Hinzufügen von Anführungszeichen in der JSON-Datei sein, aber ich habe nicht herausgefunden, wie. Die einzige Lösung besteht darin, "C: \ Programme \ Git \ bin" zu% PATH% hinzuzufügen und "commandline": "bash.exe"in profile.json zu schreiben

Grigoriy
quelle
Ich habe benutzt "commandline" : "C:\\PROGRA~1\\Git\\bin\\bash.exe",. Keine Notwendigkeit, meinen Pfad zu ändern
PTRK
Das funktioniert bei mir nicht. Es startet cmd. Aber wenn ich das "C:\\PROGRA~1\\Git\\bin\\bash.exe"geöffnete Terminalfenster eingebe, beginnt die Bash.
Grigoriy
Sie benötigen einen zusätzlichen Satz von Anführungszeichen um% PROGRAMFILES%. zB:"commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l"
BJury