Menambahkan Git-Bash ke Terminal Windows baru

206

Saya mencoba untuk menambahkan terminal baru (Git Bash) ke Terminal Windows baru, namun saya tidak dapat membuatnya berfungsi.

Saya mencoba mengubah commandlineproperti dalam profilesarray git-bash.exetetapi tidak berhasil.

Adakah yang punya ide bagaimana membuatnya bekerja?

Mendy
sumber
2
Dijelaskan: donovanbrown.com/post/...
Pawel Zentala

Jawaban:

302

Gambaran

  1. Buka pengaturan dengan ctrl + ,
  2. Anda ingin menambahkan salah satu opsi profil di bawah ini (tergantung pada versi git apa yang telah Anda instal) ke "list":bagian settings.jsonfile

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

Opsi profil

1. Git untuk 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 untuk Windows dari Scoop

Jika Anda menggunakan sendok

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

Catatan

  • buat milik Anda guidsejak https://github.com/microsoft/terminal/pull/2475 ini tidak lagi dihasilkan.
  • yang guiddapat digunakan dalam dalam globals> defaultProfilesehingga Anda dapat menekan Anda dapat menekan CtrlShiftT atau memulai terminal Windows dan akan memulai pesta secara default
"defaultProfile" : "{00000000-0000-0000-ba54-000000000001}",
  • -i -luntuk memastikan yang .bash_profiledimuat
  • menggunakan variabel lingkungan sehingga mereka dapat memetakan ke sistem yang berbeda dengan benar.
  • target git\bin\bash.exeuntuk menghindari memunculkan proses tambahan yang menghemat sekitar 10MB per proses menurut Process Explorer dibandingkan dengan menggunakan bin / bash atau git-bash

Saya memiliki konfigurasi saya yang menggunakan Scoop di https://gist.github.com/trajano/24f4edccd9a997fad8b4de29ea252cc8

Archimedes Trajano
sumber
2
Perhatikan bahwa bash.exe berada di bawah git \\ bin, tidak secara langsung di direktori Git, tidak seperti git-bash.exe. Ini membuat saya tersandung pada awalnya.
Mike Henry
70
jika Anda ingin menambahkan ikon yang benar, inilah yang saya setel bidang ikonnya ke:"icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico"
Chris Sandvik
1
Saya benar-benar menggunakan ikon kustom icons8.com/icon/set/console/office tetapi ini adalah tip yang baik jika Anda menginginkan ikon
Archimedes Trajano
1
Saya melewatkan opsi `-i -l` untuk dimuat bash_profile. Terima kasih.
ImAtWar
34
Dan hanya untuk menambahkan komentar dari @ChrisSandvik, ikon juga dapat dirujuk seperti ini:"icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico"
Julian
63

Di bawah ini ada beberapa hal yang harus dilakukan.

  1. Pastikan gitperintah Anda dapat dijalankan dengan sukses di CMD

Itu berarti Anda perlu menambahkan gitpath ketika menginstal git atau menambahkannya ke lingkungan sistem nanti.

masukkan deskripsi gambar di sini

  1. Perbarui file konfigurasi profile.json

Buka Settings, tambahkan cuplikan berikut di dalam kata 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 dapat diperoleh di sini: git-bash_32px.ico

Anda dapat menambahkan ikon untuk Tab ke lokasi ini:

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

Masukkan 32x32 PNG / ikon di folder ini, dan kemudian di profile.jsonAnda dapat referensi sumber gambar dengan path dimulai dengan ms-appdata: //.

Perhatikan bahwa, pastikan Guidsudah benar dan cocok dengan konfigurasi yang benar.

  1. Tes git bash bekerja dengan baik di Windows Terminal

Hasil akhirnya di bawah ini: masukkan deskripsi gambar di sini

Bravo Yeung
sumber
@Endy FYI, semoga bermanfaat bagi Anda.
Bravo Yeung
27
Anda juga bisa mendapatkan ikon dari 'C: \\ Program Files \\ Git \\ mingw64 \\ share \\ git \\ git-for-windows.ico'
Mendy
Terima kasih telah menunjukkan bahwa garis miring bekerja di parameter commandLine, yang membuat mengetikkan perintah lebih mudah.
Jim Raden
Apakah ada cara untuk tidak langsung masuk ke / c / windows / system32?
Brooklyn
Terima kasih ... jawaban yang ditandai tidak bekerja untuk saya untuk beberapa alasan tetapi yang ini berhasil. Saya telah menginstal git pada partisi yang berbeda sehingga variabel lingkungan menjadi masalah. Jawaban ini memiliki sedikit informasi tetapi sangat mudah untuk mencapai tujuan.
Felipe Correa
58

Ini adalah jawaban lengkap ( GitBash + skema warna + ikon + menu konteks )

1) Tetapkan profil default:

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

2) Tambahkan 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) Tambahkan skema warna 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) Untuk menambahkan menu konteks klik kanan "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\""
  • ganti {YOUR_WINDOWS_USERNAME}
  • buat folder ikon, letakkan ikon di sana dan ganti {YOUR_ICONS_FOLDER}
  • simpan ini dalam file whatever_filename.reg dan jalankan.
Altin
sumber
2
Mengapa Anda menggunakan versi MSYS dan Git\\usr\\bin\\bash.exebukannya Git untuk versi MINGW standar Windows Git\\bin\\bash.exe?
Keith Russell
1
@KeithRussell Saya belum benar-benar melihat ada waktu yang lambat tetapi jika saya lakukan nanti, saya dapat menguji di antara mereka
Altin
2
Manis! Cukup disalin dan ditempel. Ikon bekerja, warna bekerja, sempurna.
Corepuncher
2
@KeithRussell Saya menyelidiki dan menemukan stackoverflow.com/a/56844443/8874388 , dan dapat mengkonfirmasi apa yang dikatakannya. bin\bash.exeadalah peluncur 43kb kecil untuk usr\bin\bash.exe(2 mb). Pada dasarnya seperti symlink, hanya untuk kenyamanan ( binfoldernya berisi bash, sh dan git). Dengan kata lain, tidak ada perbedaan. Saya tidak yakin mengapa mereka repot-repot membuat binversi folder sama sekali. Mungkin karena PATHalasan variabel warisan (untuk tidak menginfeksi jalur dengan ls.exe, cat.exe dll juga). Tapi ya, kita harus menggunakan usr/bin/bash.exeuntuk menghindari bin/bash.exepembungkus sia-sia .
Mitch McMabers
1
@KeithRussell Juga, jika Anda mengklik kanan header kolom di Windows Task Manager - tab Detail, dan Pilih kolom, dan aktifkan kolom "Baris perintah", Anda dapat melihat bahwa Git\usr\bin\bash.exeitu dimulai tanpa argumen tambahan. Jadi satu-satunya hal potensial yang dilakukan Git\bin\bash.exewrapper adalah menyuntikkan variabel lingkungan sebelum diluncurkan, tapi saya pikir satu-satunya yang disuntikkan adalah $MSYSTEM = MINGW64variabel yang menyebabkan PS1 prompt memiliki judul yang berbeda, tapi saya ragu ia menyuntikkan hal lain, karena semuanya berfungsi dengan baik saat meluncurkan salah satu dari binari.
Mitch McMabers
7

Ubah parameter profil menjadi "commandline": "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"

Ini berfungsi untuk saya dan memungkinkan untuk menjalankan skrip alias .bash_profile saya.

Orbittman
sumber
6

Jika Anda ingin menampilkan ikon dan menggunakan tema gelap. Yang berarti ikon yang disediakan di atas tidak terlihat bagus. Maka Anda dapat menemukan ikon di sini

C:\Program Files\Git\mingw64\share\git\git-for-windows Saya menyalinnya ke.

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

dan menamainya git-bash_32pxseperti yang disarankan di atas.

Kontrol opacity dengan CTRL + SHIFT + scrolling.

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

Item lain yang perlu diperhatikan - di settings.json saya temukan jika Anda tidak menggunakan "commandline": "C: / Program Files / Git / bin / bash.exe"

dan sebagai gantinya gunakan: "commandline": "C: / Program Files / Git / git-bash.exe"

Git shell akan terbuka di jendela independen di luar Terminal Windows dan bukan pada tab - yang bukan perilaku yang diinginkan. Selain itu, tab di Terminal Windows yang terbuka juga perlu ditutup secara manual karena akan menampilkan proses keluar informasi - [proses keluar dengan kode 3221225786] dll.

Bisa menyelamatkan seseorang dari sakit kepala

AB1
sumber
4

Karena sebagian besar jawaban menunjukkan banyak konfigurasi yang tidak terkait atau tidak menunjukkan konfigurasi sama sekali, inilah jawaban saya sendiri yang mencoba untuk lebih fokus. Ini terutama didasarkan pada jawaban Archimedes Trajano dan referensi pengaturan profil .

Langkah

  1. Buka PowerShell dan masukkan [guid]::NewGuid()untuk menghasilkan GUID baru. Kami akan menggunakannya pada langkah 3.

    > [guid]::NewGuid()
    
    Guid
    ----
    a3da8d92-2f3f-4e36-9714-98876b6cb480
  2. Buka pengaturan Terminal Windows . ( CTRL+ ,)

  3. Tambahkan objek JSON berikut ke profiles.list. Ganti guiddengan yang Anda hasilkan pada langkah 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%"
    },

Catatan

  • Saat ini ada masalah yang Anda tidak dapat menggunakan tombol panah Anda (dan beberapa tombol lainnya). Tampaknya ini berfungsi dengan versi pratinjau terbaru. ( masalah # 6859 )

  • Menentukan "startingDirectory" : "%USERPROFILE%"seharusnya tidak perlu sesuai dengan referensi . Namun, jika saya tidak menentukannya, direktori awal berbeda tergantung pada bagaimana saya memulai terminal pada awalnya.

  • Pengaturan yang berlaku untuk semua terminal dapat ditentukan dalam profiles.defaults.

  • Saya sarankan untuk "antialiasingMode": "cleartype"masuk profiles.defaults. Anda harus menghapus "useAcrylic"(jika Anda telah menambahkannya seperti yang disarankan oleh beberapa jawaban lain) untuk membuatnya berfungsi. Ini meningkatkan kualitas rendering teks. Namun, Anda tidak dapat memiliki latar belakang transparan tanpa useAcrylic. Lihat edisi # 1298 .

JojOatXGME
sumber
0

Saya melakukan sebagai berikut:

  1. Tambahkan "% programfile% \ Git \ Bin" ke PATH Anda
  2. Di profil.json, tetapkan baris perintah yang diinginkan sebagai "commandline": "sh --cd-to-home"
  3. Mulai ulang Terminal Windows

Ini berhasil untuk saya.

LFrigoDeSouza
sumber
0

Menambahkan "%PROGRAMFILES%\\Git\\bin\\bash.exe -l -i"tidak berfungsi untuk saya. Karena simbol spasi (yang merupakan pemisah dalam cmd) di% PROGRAMFILES% terminal mengeksekusi perintah "C:\Program"alih-alih "C:\Program Files\Git\bin\bash.exe -l -i". Solusinya harus seperti menambahkan tanda kutip dalam file json, tapi saya tidak tahu caranya. Satu-satunya solusi adalah menambahkan "C: \ Program Files \ Git \ bin" ke% PATH% dan menulis "commandline": "bash.exe"di profiles.json

Grigoriy
sumber
Saya menggunakan "commandline" : "C:\\PROGRA~1\\Git\\bin\\bash.exe",. Tidak perlu mengubah jalur saya
PTRK
Ini tidak berhasil untuk saya. Itu lauches cmd. Tetapi jika saya mengetikkan "C:\\PROGRA~1\\Git\\bin\\bash.exe"jendela terminal yang terbuka, bash dimulai.
Grigoriy
Anda memerlukan satu set tambahan tanda kutip yang diloloskan di sekitar% PROGRAMFILES%. misal:"commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l"
BJury