Thêm Git-Bash vào Windows Terminal mới


204

Tôi đang cố gắng thêm một thiết bị đầu cuối mới (Git Bash) vào Windows Terminal mới, tuy nhiên tôi không thể làm cho nó hoạt động.

Tôi đã thử thay đổi commandlinetài sản trong profilesmảng thành git-bash.exenhưng không có may mắn.

Có ai có một ý tưởng làm thế nào để làm việc này?


Câu trả lời:


299

Tổng quat

  1. Mở cài đặt với ctrl + ,
  2. Bạn sẽ muốn nối một trong các tùy chọn cấu hình bên dưới (tùy thuộc vào phiên bản git bạn đã cài đặt) vào "list":phần của settings.jsontệp

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

Tùy chọn hồ sơ

1. Git cho 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 cho Windows từ Scoop

Nếu bạn đang sử dụng muỗng

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

Ghi chú

  • làm cho riêng bạn guidkể từ https://github.com/microsoft/terminal/pull/2475 cái này không còn được tạo nữa.
  • những guidcó thể được sử dụng trong trong globals> defaultProfilevì vậy bạn có thể nhấn bạn có thể nhấn CtrlShiftT hoặc bắt đầu một thiết bị đầu cuối Windows và nó sẽ bắt đầu lên bash theo mặc định
"defaultProfile" : "{00000000-0000-0000-ba54-000000000001}",
  • -i -lđể đảm bảo rằng .bash_profileđược tải
  • sử dụng các biến môi trường để chúng có thể ánh xạ tới các hệ thống khác nhau một cách chính xác.
  • mục tiêu git\bin\bash.exeđể tránh sinh ra các quy trình bổ sung giúp tiết kiệm khoảng 10 MB cho mỗi quy trình theo Process Explorer so với sử dụng bin / bash hoặc git-bash

Tôi có cấu hình của mình sử dụng Scoop trong https://gist.github.com/trajano/24f4edccd9a997fad8b4de29ea252cc8


2
Lưu ý rằng bash.exe nằm dưới git \\ bin, không trực tiếp trong thư mục Git, không giống như git-bash.exe. Điều này làm tôi vấp ngã lúc đầu.
Mike Henry

70
nếu bạn muốn thêm biểu tượng chính xác, đây là những gì tôi đặt trường biểu tượng thành:"icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"
Chris Sandvik

1
Tôi thực sự sử dụng một biểu tượng tùy chỉnh icon8.com/icon/set/console/office nhưng đó là một mẹo hay nếu bạn muốn biểu tượng
Archimedes Trajano

1
Tôi đã thiếu các tùy chọn `-i -l` cho bash_profile được tải. Cảm ơn.
ImAtWar

33
Và chỉ cần thêm vào nhận xét từ @ChrisSandvik, biểu tượng cũng có thể được tham chiếu như thế này:"icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico"
Julian

62

Có những điều dưới đây để làm.

  1. Hãy chắc chắn rằng gitlệnh của bạn có thể được chạy thành công trong CMD

Điều đó có nghĩa là bạn cần thêm gitvào đường dẫn khi cài đặt git hoặc thêm nó vào môi trường hệ thống sau này.

nhập mô tả hình ảnh ở đây

  1. Cập nhật tập tin cấu hình profile.json

Mở Settings, thêm đoạn mã sau vào trong từ 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 
        }

Biểu tượng có thể được lấy ở đây: git-bash_32px.ico

Bạn có thể thêm các biểu tượng cho Tab vào vị trí này:

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

Đặt 32x32 PNG / biểu tượng trong thư mục này, sau đó profile.jsonbạn có thể tham chiếu tài nguyên hình ảnh với đường dẫn bắt đầu bằng ms-appdata: //.

Lưu ý rằng, vui lòng đảm bảo Guidđúng và phù hợp với cấu hình đúng tương ứng.

  1. Kiểm tra git bash hoạt động tốt trong Windows Terminal

Kết quả cuối cùng là dưới đây: nhập mô tả hình ảnh ở đây


@Mendy FYI, chúc nó hữu ích cho bạn.
Bravo Yeung

27
Bạn cũng có thể nhận biểu tượng từ 'C: \\ Tệp chương trình \\ Git \\ mingw64 \\ share \\ git \\ git-for-windows.ico'
Mendy

Cảm ơn bạn đã chỉ ra rằng dấu gạch chéo chuyển tiếp hoạt động trong tham số CommandLine, giúp việc nhập lệnh dễ dàng hơn nhiều.
Jim Raden

Có cách nào để không đi thẳng vào / c / windows / system32 không?
Brooklyn

Cảm ơn bạn ... câu trả lời được đánh dấu đã không làm việc cho tôi vì một số lý do nhưng câu trả lời này đã làm. Tôi đã cài đặt git của mình trên một phân vùng khác để các biến môi trường là một vấn đề. Câu trả lời này có ít thông tin hơn nhưng rất đơn giản để đạt được mục tiêu.
Felipe Correa

57

Đây là câu trả lời hoàn chỉnh ( GitBash + phối màu + biểu tượng + menu ngữ cảnh )

1) Đặt cấu hình mặc định:

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

2) Thêm hồ sơ 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) Thêm bảng màu 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) Để thêm menu ngữ cảnh nhấp chuột phải "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\""
  • thay thế {YOU_WINDOWS_USERNAME}
  • tạo thư mục biểu tượng, đặt biểu tượng ở đó và thay thế {YOU_ICONS_FOLDER}
  • tiết kiệm này trong whatever_filename.reg tập tin và chạy nó.

2
Tại sao bạn sử dụng phiên bản MSYS Git\\usr\\bin\\bash.exethay vì Git cho phiên bản MINGW mặc định của Windows Git\\bin\\bash.exe?
Keith Russell

1
@KeithRussell Tôi thực sự không nhận thấy bất kỳ thời gian chậm nào nhưng nếu tôi làm sau, tôi có thể kiểm tra giữa họ.
Altin

2
Ngọt! Đơn giản chỉ cần sao chép và dán. Biểu tượng làm việc, màu sắc làm việc, hoàn hảo.
Corepuncher

2
@KeithRussell Tôi đã điều tra và tìm thấy stackoverflow.com/a/56844443/8874388 và có thể xác nhận những gì nó nói. bin\bash.exelà một launcher 43kb nhỏ cho usr\bin\bash.exe(2 mb). Về cơ bản giống như một liên kết tượng trưng, ​​chỉ để thuận tiện ( binthư mục chứa bash, sh và git). Nói cách khác, không có sự khác biệt. Tôi không chắc tại sao họ lại bận tâm tạo binphiên bản thư mục. Có lẽ vì PATHlý do biến di sản (để không lây nhiễm đường dẫn với ls.exe, cat.exe, v.v.). Nhưng vâng, chúng ta nên sử dụng usr/bin/bash.exeđể tránh bin/bash.exetrình bao bọc vô nghĩa .
Mitch McMabers

1
@KeithRussell Ngoài ra, nếu bạn nhấp chuột phải vào tiêu đề cột trong Trình quản lý tác vụ Windows - tab Chi tiết và Chọn cột và bật cột "Dòng lệnh", bạn có thể thấy nó Git\usr\bin\bash.exeđược bắt đầu mà không cần thêm đối số. Vì vậy, điều tiềm năng duy nhất mà Git\bin\bash.exetrình bao bọc thực hiện là tiêm các biến môi trường trước khi khởi chạy, nhưng tôi nghĩ điều duy nhất nó tiêm là $MSYSTEM = MINGW64biến khiến cho dấu nhắc PS1 có một tiêu đề khác, nhưng tôi nghi ngờ nó tiêm bất cứ thứ gì khác, vì mọi thứ đều hoạt động đúng khi khởi chạy một trong hai nhị phân.
Mitch McMabers

6

Thay đổi tham số cấu hình thành "commandline": "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"

Điều này làm việc cho tôi và cho phép các tập lệnh tự động hoàn thành bí danh .bash_profile của tôi chạy.


5

Nếu bạn muốn hiển thị một biểu tượng và đang sử dụng một chủ đề tối. Điều đó có nghĩa là biểu tượng được cung cấp ở trên trông không tuyệt lắm. Sau đó, bạn có thể tìm thấy biểu tượng ở đây

C:\Program Files\Git\mingw64\share\git\git-for-windows Tôi đã sao chép nó vào.

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

và đặt tên cho nó git-bash_32pxnhư đề xuất ở trên.

Kiểm soát độ mờ bằng cuộn 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
        },

3

Một mục khác cần lưu ý - trong settings.json tôi đã phát hiện ra nếu bạn không sử dụng "dòng lệnh": "C: / Chương trình tập tin / Git / bin / bash.exe"

và thay vào đó sử dụng: "dòng lệnh": "C: / Tệp chương trình / Git / git-bash.exe"

shell Git sẽ mở ra trong một cửa sổ độc lập bên ngoài Windows Terminal thay vì trên tab - đây không phải là hành vi mong muốn. Ngoài ra, tab trong Windows Terminal mở cũng sẽ cần phải được đóng bằng tay vì nó sẽ hiển thị thông tin đã thoát quá trình - [quá trình thoát với mã 3221225786], v.v.

Có thể cứu ai đó đau đầu


2

Bởi vì hầu hết các câu trả lời đều hiển thị rất nhiều cấu hình không liên quan hoặc hoàn toàn không hiển thị cấu hình, đây là câu trả lời của riêng tôi cố gắng tập trung hơn. Nó chủ yếu dựa trên câu trả lời của Archimedes Trajanotham chiếu cài đặt hồ sơ .

Các bước

  1. Mở PowerShell và nhập [guid]::NewGuid()để tạo GUID mới. Chúng tôi sẽ sử dụng nó ở bước 3.

    > [guid]::NewGuid()
    
    Guid
    ----
    a3da8d92-2f3f-4e36-9714-98876b6cb480
  2. Mở cài đặt của Windows Terminal . ( CTRL+ ,)

  3. Thêm đối tượng JSON sau vào profiles.list. Thay thế guidbằng cái bạn đã tạo ở bước 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%"
    },

Ghi chú

  • Chỉ định "startingDirectory" : "%USERPROFILE%"không cần thiết theo tham chiếu . Tuy nhiên, nếu tôi không chỉ định nó, thư mục bắt đầu sẽ khác tùy thuộc vào cách tôi khởi động thiết bị đầu cuối.

  • Cài đặt sẽ áp dụng cho tất cả các thiết bị đầu cuối có thể được chỉ định trong profiles.defaults.

  • Tôi khuyên bạn nên thiết lập "antialiasingMode": "cleartype"trong profiles.defaults. Bạn phải xóa "useAcrylic"(nếu bạn đã thêm nó theo gợi ý của một số câu trả lời khác) để làm cho nó hoạt động. Nó cải thiện chất lượng hiển thị văn bản. Tuy nhiên, bạn không thể có nền trong suốt mà không có useAcrylic. Xem Vấn đề # 1298 .


0

Tôi đã làm như sau:

  1. Thêm "% chương trình %% Git \ Bin" vào PATH của bạn
  2. Trên profile.json, đặt dòng lệnh mong muốn là "dòng lệnh": "sh --cd-to-home"
  3. Khởi động lại Windows Terminal

Nó làm việc cho tôi.


0

Thêm "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"không làm việc cho tôi. Do ký hiệu không gian (là dấu phân cách tính bằng cmd) trong% PROGRAMFILES% terminal thực thi lệnh "C:\Program"thay vì "C:\Program Files\Git\bin\bash.exe -l -i". Giải pháp nên giống như thêm dấu ngoặc kép trong tệp json, nhưng tôi đã không tìm ra cách. Giải pháp duy nhất là thêm "C: \ Program Files \ Git \ bin" vào% PATH% và ghi "commandline": "bash.exe"vào profile.json


Tôi đã sử dụng "commandline" : "C:\\PROGRA~1\\Git\\bin\\bash.exe",. Không cần sửa đổi đường dẫn của tôi
PTRK

Điều này không làm việc cho tôi. Nó lau cmd. Nhưng nếu tôi gõ "C:\\PROGRA~1\\Git\\bin\\bash.exe"vào cửa sổ terminal mở, bash bắt đầu.
Grigoriy

bạn cần thêm một bộ dấu ngoặc kép thoát xung quanh% PROGRAMFILES%. ví dụ:"commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l"
BJury
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.