Agregar Git-Bash a la nueva Terminal de Windows

206

Estoy tratando de agregar una nueva terminal (Git Bash) a la nueva Terminal de Windows, sin embargo, no puedo hacer que funcione.

Intenté cambiar la commandlinepropiedad de la profilesmatriz a, git-bash.exepero no tuve suerte.

¿Alguien tiene una idea de cómo hacer que esto funcione?

Mendy
fuente
2
Explicado: donovanbrown.com/post/…
Pawel Zentala

Respuestas:

302

Visión general

  1. Configuración abierta con ctrl + ,
  2. Deberá agregar una de las opciones de perfiles a continuación (dependiendo de la versión de git que haya instalado) a la "list":parte del settings.jsonarchivo

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

Opciones de perfil

1. Git para 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 para Windows desde Scoop

Si estás usando primicia

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

Notas

  • haga el suyo a guidpartir de https://github.com/microsoft/terminal/pull/2475 esto ya no se genera.
  • el guidse puede utilizar en la globals> defaultProfilepara pulsar puede presionar CtrlShiftT o iniciar un terminal Windows y que se pondrá en marcha golpe por defecto
"defaultProfile" : "{00000000-0000-0000-ba54-000000000001}",
  • -i -lpara asegurarse de que .bash_profilese carga
  • use variables de entorno para que puedan mapearse a diferentes sistemas correctamente.
  • objetivo git\bin\bash.exepara evitar generar procesos adicionales que ahorran aproximadamente 10 MB por proceso según Process Explorer en comparación con el uso de bin / bash o git-bash

Tengo mi configuración que usa Scoop en https://gist.github.com/trajano/24f4edccd9a997fad8b4de29ea252cc8

Arquímedes Trajano
fuente
2
Tenga en cuenta que bash.exe está bajo git \\ bin, no directamente en el directorio Git, a diferencia de git-bash.exe. Esto me hizo tropezar al principio.
Mike Henry
70
si desea agregar el ícono correcto, esto es lo que configuré en el campo de ícono:"icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"
Chris Sandvik
1
De hecho, uso un ícono personalizado icons8.com/icon/set/console/office pero es un buen consejo si quieres el ícono
Archimedes Trajano
1
Me faltaban las opciones `-i -l` para cargar el bash_profile. Gracias.
ImAtWar
34
Y solo para agregar al comentario de @ChrisSandvik, también se puede hacer referencia al icono de esta manera:"icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico"
Julián
63

A continuación hay cosas que hacer.

  1. Asegúrese de que su gitcomando se pueda ejecutar con éxito en CMD

Eso significa que debe agregar gita la ruta al instalar git o agregarlo al entorno del sistema más adelante.

ingrese la descripción de la imagen aquí

  1. Actualiza el archivo de configuración profile.json

Abra Settings, agregue el siguiente fragmento dentro de la palabra 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 
        }

El icono se puede obtener aquí: git-bash_32px.ico

Puede agregar iconos para Tab a esta ubicación:

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

Coloque 32x32 PNG / iconos en esta carpeta, y luego profile.jsonpuede hacer referencia al recurso de imagen con la ruta que comienza con ms-appdata: //.

Tenga en cuenta que, asegúrese de que Guidsea ​​correcto y que coincida con las configuraciones correctas correspondientes.

  1. Prueba git bash funciona bien en Windows Terminal

El resultado final está abajo: ingrese la descripción de la imagen aquí

Bravo Yeung
fuente
@Mendy FYI, deseo que sea útil para ti.
Bravo Yeung
27
También puede obtener el icono de 'C: \\ Archivos de programa \\ Git \\ mingw64 \\ share \\ git \\ git-for-windows.ico'
Mendy
Gracias por mostrar que las barras diagonales funcionan en el parámetro commandLine, lo que hace que escribir el comando sea mucho más fácil.
Jim Raden
¿Hay alguna manera de que no vaya directamente a / c / windows / system32?
Brooklyn
Gracias ... la respuesta marcada no funcionó para mí por alguna razón, pero esta sí. Tengo mi git instalado en una partición diferente, por lo que las variables de entorno fueron un problema. Esta respuesta tiene menos información, pero es mucho más directa para lograr el objetivo.
Felipe Correa
58

Esta es la respuesta completa ( GitBash + combinación de colores + icono + menú contextual )

1) Establecer perfil predeterminado:

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

2) Agregar perfil 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) Agregar esquema de color 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) Para agregar un menú contextual con el botón derecho "Terminal de Windows aquí"

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\""
  • reemplazar {YOUR_WINDOWS_USERNAME}
  • crear carpeta de iconos, poner el icono allí y reemplazar {YOUR_ICONS_FOLDER}
  • guarde esto en un archivo whatever_filename.reg y ejecútelo.
Altin
fuente
2
¿Por qué utiliza la versión MSYS en Git\\usr\\bin\\bash.exelugar de Git para la versión MINGW predeterminada de Windows Git\\bin\\bash.exe?
Keith Russell el
1
@KeithRussell Realmente no he notado ningún tiempo lento, pero si lo hago más tarde, puedo probar entre ellos.
Altin
2
¡Dulce! Simplemente copiado y pegado. Los iconos funcionan, los colores funcionan, perfecto.
Corepuncher
2
@KeithRussell Investigué y encontré stackoverflow.com/a/56844443/8874388 , y puedo confirmar lo que dice. bin\bash.exees un pequeño lanzador de 43 kb para usr\bin\bash.exe(2 mb). Básicamente, como un enlace simbólico, solo por conveniencia (la bincarpeta contiene bash, sh y git). En otras palabras, no hay diferencia. No estoy seguro de por qué se molestaron en hacer la binversión de la carpeta. Quizás por PATHrazones variables heredadas (para no infectar la ruta con ls.exe, cat.exe, etc.). Pero sí, deberíamos usarlo usr/bin/bash.exepara evitar el bin/bash.exeenvoltorio sin sentido .
Mitch McMabers
1
@KeithRussell Además, si hace clic con el botón derecho en el encabezado de la columna en el Administrador de tareas de Windows - pestaña Detalles, y Seleccionar columnas, y habilita la columna "Línea de comando", puede ver que Git\usr\bin\bash.exese inicia sin ningún argumento adicional. Entonces, lo único que hace el Git\bin\bash.exereiniciador es inyectar variables de entorno antes de iniciarlo, pero creo que lo único que inyecta es la $MSYSTEM = MINGW64variable que hace que la solicitud de PS1 tenga un título diferente, pero dudo que inyecte algo más, ya que todo funciona correctamente al iniciar cualquiera de los binarios.
Mitch McMabers
7

Cambie el parámetro de perfiles a "commandline": "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"

Esto funciona para mí y permite que se ejecuten mis scripts de autocompletado de alias .bash_profile.

Orbittman
fuente
6

Si desea mostrar un icono y está utilizando un tema oscuro. Lo que significa que el icono proporcionado anteriormente no se ve tan bien. Entonces puedes encontrar el ícono aquí

C:\Program Files\Git\mingw64\share\git\git-for-windows Lo copié.

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

y lo nombró git-bash_32pxcomo se sugirió anteriormente.

Controla la opacidad con CTRL + MAYÚS + desplazamiento.

        {
            "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
fuente
4

Otro elemento a tener en cuenta: en settings.json descubrí si no usa "línea de comando": "C: / Archivos de programa / Git / bin / bash.exe"

y en su lugar use: "línea de comando": "C: / Archivos de programa / Git / git-bash.exe"

el shell Git se abrirá en una ventana independiente fuera de Windows Terminal en lugar de en una pestaña, que no es el comportamiento deseado. Además, la pestaña en Windows Terminal que se abre también deberá cerrarse manualmente, ya que mostrará la información del proceso salido - [proceso salido con el código 3221225786] etc.

Podría salvar a alguien un poco de dolor de cabeza

AB1
fuente
4

Debido a que la mayoría de las respuestas muestran mucha configuración que no está relacionada o no muestran la configuración en absoluto, aquí está mi propia respuesta que intenta enfocarse más. Se basa principalmente en la respuesta de Arquímedes Trajano y la referencia de configuración del perfil .

Pasos

  1. Abra PowerShell e ingrese [guid]::NewGuid()para generar un nuevo GUID. Lo usaremos en el paso 3.

    > [guid]::NewGuid()
    
    Guid
    ----
    a3da8d92-2f3f-4e36-9714-98876b6cb480
  2. Abra la configuración de Windows Terminal . ( CTRL+ ,)

  3. Agregue el siguiente objeto JSON a profiles.list. Reemplace guidcon el que generó en el paso 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%"
    },

Notas

  • Actualmente hay un problema que no puede utilizar sus teclas de flecha (y algunas otras teclas). Sin embargo, parece funcionar con la última versión preliminar. ( número 6859 )

  • "startingDirectory" : "%USERPROFILE%"No debería ser necesario especificar según la referencia . Sin embargo, si no lo especifico, el directorio de inicio fue diferente dependiendo de cómo comencé el terminal inicialmente.

  • Las configuraciones que se aplicarán a todos los terminales se pueden especificar en profiles.defaults.

  • Recomiendo a establecer "antialiasingMode": "cleartype"en profiles.defaults. Debe eliminar "useAcrylic"(si lo ha agregado como lo sugieren algunas otras respuestas) para que funcione. Mejora la calidad de la representación de texto. Sin embargo, no puede tener un fondo transparente sin useAcrylic. Ver el número 1298 .

JojOatXGME
fuente
0

Hice lo siguiente:

  1. Agregue "% programfiles% \ Git \ Bin" a su RUTA
  2. En profiles.json, establezca la línea de comandos deseada como "línea de comandos": "sh --cd-to-home"
  3. Reiniciar el terminal de Windows

A mí me funcionó.

LFrigoDeSouza
fuente
0

Agregar "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"no funciona para mí. Debido al símbolo de espacio (que es un separador en cmd) en la terminal% PROGRAMFILES% ejecuta el comando en "C:\Program"lugar de "C:\Program Files\Git\bin\bash.exe -l -i". La solución debería ser algo así como agregar comillas en el archivo json, pero no descubrí cómo. La única solución es agregar "C: \ Archivos de programa \ Git \ bin" a% PATH% y escribir "commandline": "bash.exe"profiles.json

Grigoriy
fuente
He utilizado "commandline" : "C:\\PROGRA~1\\Git\\bin\\bash.exe",. No es necesario modificar mi camino
PTRK
Esto no funciona para mi. Lanza cmd. Pero si escribo "C:\\PROGRA~1\\Git\\bin\\bash.exe"en la ventana de terminal abierta, bash comienza.
Grigoriy
necesita un conjunto adicional de comillas escapadas alrededor del% PROGRAMFILES%. Por ejemplo:"commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l"
BJury