Ajout de Git-Bash au nouveau terminal Windows

206

J'essaie d'ajouter un nouveau terminal (Git Bash) au nouveau terminal Windows, mais je ne peux pas le faire fonctionner.

J'ai essayé de changer la commandlinepropriété du profilestableau git-bash.exemais pas de chance.

Quelqu'un a-t-il une idée de comment faire fonctionner cela?

Mendy
la source
2
Expliqué: donovanbrown.com/post/…
Pawel Zentala

Réponses:

302

Aperçu

  1. Ouvrez les paramètres avec ctrl + ,
  2. Vous voudrez ajouter l'une des options de profil ci-dessous (en fonction de la version de git que vous avez installée) à la "list":partie du settings.jsonfichier

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

Options de profil

1. Git pour 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 pour Windows de Scoop

Si vous utilisez 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
    },

Remarques

  • faites le vôtre à guidpartir de https://github.com/microsoft/terminal/pull/2475 ce n'est plus généré.
  • le guidpeut être utilisé dans le globals> defaultProfileafin que vous puissiez appuyer sur vous pouvez appuyer sur CtrlShiftT ou démarrer un terminal Windows et il démarrera bash par défaut
"defaultProfile" : "{00000000-0000-0000-ba54-000000000001}",
  • -i -lpour s'assurer que cela .bash_profileest chargé
  • utiliser des variables d'environnement afin qu'elles puissent être correctement mappées à différents systèmes.
  • cible git\bin\bash.exepour éviter de générer des processus supplémentaires, ce qui économise environ 10 Mo par processus selon Process Explorer par rapport à l'utilisation de bin / bash ou git-bash

J'ai ma configuration qui utilise Scoop dans https://gist.github.com/trajano/24f4edccd9a997fad8b4de29ea252cc8

Archimède Trajano
la source
2
Notez que bash.exe est sous git \\ bin, pas directement dans le répertoire Git, contrairement à git-bash.exe. Cela m'a fait trébucher au début.
Mike Henry
70
si vous voulez ajouter la bonne icône, voici ce que j'ai défini dans le champ de l'icône:"icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"
Chris Sandvik
1
J'utilise en fait une icône personnalisée icons8.com/icon/set/console/office mais c'est un bon conseil si vous voulez l'icône
Archimedes Trajano
1
Il me manquait les options `-i -l` pour le bash_profile à charger. Merci.
ImAtWar
34
Et juste pour ajouter au commentaire de @ChrisSandvik, l'icône peut également être référencée comme ceci:"icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico"
Julian
63

Il y a ci-dessous des choses à faire.

  1. Assurez-vous que votre gitcommande peut être exécutée avec succès dans CMD

Cela signifie que vous devez ajouter gitau chemin lors de l'installation de git ou l'ajouter ultérieurement à l'environnement système.

entrez la description de l'image ici

  1. Mettre à jour le fichier de configuration profile.json

Ouvrez Settings, ajoutez l'extrait suivant à l'intérieur du mot 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 
        }

L'icône peut être obtenue ici: git-bash_32px.ico

Vous pouvez ajouter des icônes pour Tab à cet emplacement:

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

Mettez 32x32 PNG / icons dans ce dossier, puis dans profile.jsonvous pouvez référencer la ressource image avec le chemin commençant par ms-appdata: //.

Notez que, veuillez vous assurer que le Guidest correct et qu'il correspond aux configurations correctes correspondantes.

  1. Le test git bash fonctionne bien dans Windows Terminal

Le résultat final est ci-dessous: entrez la description de l'image ici

Bravo Yeung
la source
@Mendy FYI, je souhaite que cela vous soit utile.
Bravo Yeung
27
Vous pouvez également obtenir l'icône de 'C: \\ Program Files \\ Git \\ mingw64 \\ share \\ git \\ git-for-windows.ico'
Mendy
Merci d'avoir montré que les barres obliques fonctionnent dans le paramètre commandLine, ce qui facilite grandement la saisie de la commande.
Jim Raden
Existe-t-il un moyen de ne pas le faire aller directement dans / c / windows / system32?
Brooklyn le
Merci ... la réponse marquée n'a pas fonctionné pour moi pour une raison quelconque, mais celle-ci a fonctionné. J'ai mon git installé sur une partition différente, donc les variables d'environnement étaient un problème. Cette réponse contient moins d'informations mais est beaucoup plus simple pour atteindre l'objectif.
Felipe Correa
58

C'est la réponse complète ( GitBash + jeu de couleurs + icône + menu contextuel )

1) Définissez le profil par défaut:

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

2) Ajouter un 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) Ajouter un jeu de couleurs 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) Pour ajouter un menu contextuel "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\""
  • remplacer {YOUR_WINDOWS_USERNAME}
  • créer un dossier d'icônes, mettre l'icône là-bas et remplacer {YOUR_ICONS_FOLDER}
  • enregistrez-le dans un fichier any_filename.reg et exécutez-le.
Altin
la source
2
Pourquoi utilisez-vous la version MSYS Git\\usr\\bin\\bash.exeau lieu de Git pour la version MINGW par défaut de Windows Git\\bin\\bash.exe?
Keith Russell
1
@KeithRussell Je n'ai pas vraiment remarqué de temps lent, mais si je le fais plus tard, je peux tester entre eux.
Altin
2
Doux! Copié et collé simplement. Les icônes fonctionnent, les couleurs fonctionnent, parfaites.
Corepuncher
2
@KeithRussell J'ai enquêté et trouvé stackoverflow.com/a/56844443/8874388 , et je peux confirmer ce qu'il dit. bin\bash.exeest un petit lanceur de 43 ko pour usr\bin\bash.exe(2 mb). Fondamentalement, comme un lien symbolique, juste pour plus de commodité (le bindossier contient bash, sh et git). En d'autres termes, il n'y a pas de différence. Je ne sais pas pourquoi ils ont pris la peine de créer la binversion du dossier. Peut-être pour PATHdes raisons de variables héritées (pour ne pas infecter le chemin avec ls.exe, cat.exe, etc.). Mais oui, nous devrions utiliser usr/bin/bash.exepour éviter le bin/bash.exewrapper inutile .
Mitch McMabers
1
@KeithRussell De plus, si vous cliquez avec le bouton droit de la souris sur l'en-tête de colonne dans le Gestionnaire des tâches de Windows - onglet Détails, sélectionnez les colonnes et activez la colonne «Ligne de commande», vous pouvez voir que cela Git\usr\bin\bash.exedémarre sans aucun argument supplémentaire. Donc, la seule chose potentielle que le Git\bin\bash.exewrapper fait est d'injecter des variables d'environnement avant le lancement, mais je pense que la seule chose qu'il injecte est la $MSYSTEM = MINGW64variable qui fait que l'invite PS1 a un titre différent, mais je doute qu'il injecte autre chose, car tout fonctionne correctement lors du lancement de l'un des binaires.
Mitch McMabers
7

Remplacez le paramètre profiles par "commandline": "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"

Cela fonctionne pour moi et permet l'exécution de mes scripts de saisie semi-automatique d'alias .bash_profile.

Orbittman
la source
6

Si vous souhaitez afficher une icône et utilisez un thème sombre. Ce qui signifie que l'icône fournie ci-dessus n'a pas l'air génial. Ensuite, vous pouvez trouver l'icône ici

C:\Program Files\Git\mingw64\share\git\git-for-windows Je l'ai copié dans.

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

et je l'ai nommé git-bash_32px comme suggéré ci-dessus.

Contrôlez l'opacité avec CTRL + SHIFT + défilement.

        {
            "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
la source
4

Un autre élément à noter - dans settings.json, j'ai découvert si vous n'utilisez pas "commandline": "C: / Program Files / Git / bin / bash.exe"

et utilisez à la place: "commandline": "C: / Program Files / Git / git-bash.exe"

le shell Git s'ouvrira dans une fenêtre indépendante en dehors du terminal Windows plutôt que sur un onglet - ce qui n'est pas le comportement souhaité. En outre, l'onglet dans le terminal Windows qui s'ouvre devra également être fermé manuellement car il affichera les informations de processus terminé - [processus quitté avec le code 3221225786] etc.

Pourrait sauver quelqu'un des maux de tête

AB1
la source
4

Parce que la plupart des réponses montrent soit beaucoup de configuration qui n'est pas liée, soit ne montrent pas du tout la configuration, voici ma propre réponse qui essaie d'être plus ciblée. Il est principalement basé sur la réponse d'Archimède Trajano et la référence des paramètres de profil .

Pas

  1. Ouvrez PowerShell et entrez [guid]::NewGuid()pour générer un nouveau GUID. Nous l'utiliserons à l'étape 3.

    > [guid]::NewGuid()
    
    Guid
    ----
    a3da8d92-2f3f-4e36-9714-98876b6cb480
  2. Ouvrez les paramètres du terminal Windows . ( CTRL+ ,)

  3. Ajoutez l'objet JSON suivant à profiles.list. Remplacez-le guidpar celui que vous avez généré à l'étape 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%"
    },

Remarques

  • Il existe actuellement un problème selon lequel vous ne pouvez pas utiliser vos touches fléchées (et certaines autres touches). Il semble cependant fonctionner avec la dernière version d'aperçu. ( émission n ° 6859 )

  • La spécification "startingDirectory" : "%USERPROFILE%"ne devrait pas être nécessaire selon la référence . Cependant, si je ne le spécifie pas, le répertoire de départ était différent selon la façon dont j'ai démarré le terminal au départ.

  • Les paramètres applicables à tous les terminaux peuvent être spécifiés dans profiles.defaults.

  • Je recommande de mettre "antialiasingMode": "cleartype"en profiles.defaults. Vous devez supprimer "useAcrylic"(si vous l'avez ajouté comme suggéré par d'autres réponses) pour le faire fonctionner. Il améliore la qualité du rendu du texte. Cependant, vous ne pouvez pas avoir d'arrière-plan transparent sans useAcrylic. Voir le numéro 1298 .

JojOatXGME
la source
0

J'ai fait comme suit:

  1. Ajoutez "% programfiles% \ Git \ Bin" à votre PATH
  2. Sur profiles.json, définissez la ligne de commande souhaitée comme "ligne de commande": "sh --cd-to-home"
  3. Redémarrez le terminal Windows

Cela a fonctionné pour moi.

LFrigoDeSouza
la source
0

L'ajout "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"ne fonctionne pas pour moi. En raison du symbole d'espace (qui est le séparateur dans cmd) dans% PROGRAMFILES%, le terminal exécute la commande "C:\Program"au lieu de "C:\Program Files\Git\bin\bash.exe -l -i". La solution devrait être quelque chose comme l'ajout de guillemets dans un fichier json, mais je n'ai pas compris comment. La seule solution est d'ajouter "C: \ Program Files \ Git \ bin" à% PATH% et d'écrire "commandline": "bash.exe"dans profiles.json

Grigoriy
la source
J'ai utilisé "commandline" : "C:\\PROGRA~1\\Git\\bin\\bash.exe",. Pas besoin de modifier mon chemin
PTRK
Cela ne fonctionne pas pour moi. Il lance cmd. Mais si je tape "C:\\PROGRA~1\\Git\\bin\\bash.exe"dans la fenêtre de terminal ouverte, bash démarre.
Grigoriy
vous avez besoin d'un ensemble supplémentaire de guillemets échappés autour de% PROGRAMFILES%. Par exemple:"commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l"
BJury