Bagaimana Cara Meluncurkan Git Bash dari Baris Perintah DOS?

106

Saya mendapatkan apa yang saya harapkan adalah pertanyaan sederhana, tetapi saya belum dapat menemukan jawabannya. Saya ingin meluncurkan Git Bash dari file batch DOS. Inilah yang saya coba sejauh ini:

  1. Meluncurkan Git Bash dari tombol Start Win 7
  2. Menggunakan CTRL + ALT + DEL untuk mengidentifikasi proses sebagai "sh.exe"
  3. Meluncurkan sh.exe dari file batch menggunakan perintah start

    start sh.exe
    

Namun, ini tidak meluncurkan lingkungan Git Bash lengkap. Git Bash biasanya memiliki "MingW32" dalam judul bar, tapi sh.exe memiliki path lengkap ke ... Git\bin\sh.exe. Saya merasa ada beberapa overlay atau dependensi yang mungkin tidak saya sadari, yang juga perlu dimuat (ditarik? Diimpor?).

Ini adalah salah satu hasil teratas yang saya temukan melalui penelusuran web, tetapi tidak sepenuhnya masuk akal bagi saya dan saya tidak yakin apakah itu berlaku tepat untuk situasi saya:

Menjalankan git dari baris Cmd Windows: Di mana file kunci?

Saya seorang pemula dalam dunia skrip batch DOS.

Eric Hepperle - CodeSlayer2010
sumber
1
Sebenarnya , ini bukan baris perintah DOS kecuali: (a) Anda telah mengalami semacam anomali waktu dan menggunakan Windows 9x / ME, di mana command.comsatu-satunya shell yang disertakan dengan OS (b) Anda menggunakan 32- bit sistem NT dan memanggil command.comdiri Anda sendiri, atau program lama melakukannya untuk Anda. Lihat Apa perbedaan antara CMD dan Command prompt di windows? untuk info lebih lanjut.
SamB

Jawaban:

125

Jika Anda ingin meluncurkan dari file batch:

  • untuk x86

    start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login
    
  • untuk x64

    start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login
    
Endoro
sumber
Terima kasih @Endoro! Meskipun jawaban @Klas Mellbourn benar untuk Powershell, jawaban Anda lebih tepat karena saya menjalankan dari file batch DOS. Penambahan perintah "start" menyebabkan program dijalankan secara asynchronous, itulah yang saya butuhkan! Jempolan!
Eric Hepperle - CodeSlayer2010
14
Apakah ada cara untuk mengetik dan menjalankan perintah ke jendela batch Git setelah dibuka dari dalam file batch?
Nick
1
@OviC Apakah Anda yakin suntingan Anda sudah benar? "Program Files (x86)" hanya ada di bawah arsitektur x64 untuk program 32 bit.
Drunix
@Drunix Anda benar, tidak ada jalur "Program Files (x86) \" di sistem x86. Saya melakukan rollback. Terima kasih.
Endoro
Bagaimana jika tidak diinstal pada drive sistem? Bagaimana jika tidak diinstal di file program?
Michael Kruglos
44

Saya tidak yakin apa yang Anda maksud dengan "lingkungan Git Bash penuh", tapi saya mendapatkan prompt yang bagus jika saya melakukannya

"C:\Program Files\Git\bin\sh.exe" --login

Di PowerShell

& 'C:\Program Files\Git\bin\sh.exe' --login

The --loginberalih membuat shell mengeksekusi login shell file startup .

Klas Mellbourn
sumber
Terima kasih @Klas Mellbourn. Jawaban Anda bagus untuk Powershell, tetapi tanpa penambahan arahan "start" seperti dalam jawaban Endoro, itu menghentikan eksekusi program berikutnya sampai shell keluar, yang bukan merupakan perilaku yang diinginkan, jika tidak saya akan memilih Anda.
Eric Hepperle - CodeSlayer2010
Saya menggunakan Console2 ke jendela cmd, dan ini menyebabkan perilaku aneh. Saya taruh ini dalam file .bat dan sekarang semuanya baik-baik saja:@"%SYSTEMDRIVE%\Program Files\Git\bin\bash.exe" --login
Grault
25

Saya lebih suka menggunakan git-bash.exe daripada sh.exe.

start "" "%ProgramFiles%\Git\git-bash.exe" -c "tail -f /c/Windows/win.ini"

Anda bisa berhenti menutup jendela saat panggilan /usr/bin/bash --login -ipada akhirnya;

start "" "%ProgramFiles%\Git\git-bash.exe" -c "echo 1 && echo 2 && /usr/bin/bash --login -i"

Catatan: Saya tidak yakin ini cara yang baik :)

kujiy
sumber
4
Jawaban bagus, tapi jendela git-bash segera menutup. Apakah Anda tahu cara menonaktifkan tutup otomatis setelah perintah selesai dijalankan?
Tandai
@ Mark Terima kasih Mark. Saya menambahkan contoh untuk jawaban saya di atas. Sayangnya saya tidak yakin bagaimana kita harus melakukannya dengan cara yang benar karena saya bukan orang jendela :)
kujiy
1
[code] start "" "% ProgramFiles% \ Git \ git-bash.exe" [/ code] bekerja dengan baik!
PauAI
@PauAI 2018 sekarang ... Saya mencoba start "" "%ProgramFiles%\Git\git-bash.exe"dari baris perintah administrator, dan meskipun ini menampilkan Git Bash di jendela baru, mengetik perintah sederhana seperti lstidak menghasilkan keluaran. Metode ini sepertinya tidak mengizinkan eksekusi perintah linux. ... EDIT: Berhasil, hanya butuh waktu lama (2 menit) untuk menjalankan ls. Lalu ls lagi berlari dalam waktu kurang dari 1 detik. ... aneh.
Eric Hepperle - CodeSlayer2010
8

Saya lebih suka, menempatkan git di variabel lingkungan dan hanya memanggil

c:\Users\[myname]>sh
or 
c:\Users\[myname]>bash

Langkah-langkah untuk membuat variabel lingkungan (Win7)

  • Dari desktop, klik kanan ikon Komputer.
  • Pilih Properti dari menu konteks.
  • Klik tautan Pengaturan sistem lanjutan.
  • Klik Variabel Lingkungan.
  • Di bagian Variabel pengguna, tekan tombol BARU, masukkan nama variabel sebagai GIT_HOME, nilai sebagai (folder-tempat-Anda-instal-git).

    • bagi saya itu dulu c:\tools\git, orang lain mungkin punyaC:\Program Files\Git
  • temukan PATHvariabel lingkungan dan pilih. Klik Edit. (Jika variabel lingkungan PATH tidak ada, klik Baru).

  • Di jendela Edit, tambahkan nilai baru %GIT_HOME%dan %GIT_HOME%\bin. Klik OK. Tutup semua jendela yang tersisa dengan mengklik OK.
  • [Pastikan Anda menutup CMD yang ingin Anda gunakan untuk git]
  • terbuka baru Command prompt, dan ketik shatau bashataugit-bash
biksu tua
sumber
2
Terima kasih! Saya bisa membuatnya berfungsi dengan GIT_HOME sebagai C:\Program Files\Git, dan mengetik git-bashdari CMD. Juga, anehnya, meskipun Anda hanya perlu mengetik PATH untuk melihat isinya, untuk melihat konten variabel khusus git ini Anda harus mengetikecho %GIT_HOME%
Eric Hepperle - CodeSlayer2010
Terima kasih, ini adalah tambahan yang bagus. Untuk menambahkan ini, ketika Anda memiliki GIT_HOMEvariabel dan Anda menggunakan git-bashperintah (atau git-cmd) itu akan membukanya di jendela baru. Jika Anda menambahkan variabel lingkungan "PATH", variabel tersebut akan beralih di jendela yang ada. Anda juga dapat mengetik exit"logout" dari git bash dan tetap mempertahankan prompt DOS.
Keith E. Truesdell
4
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login -i

Git bash akan terbuka.

pengguna3616334
sumber
3

https://stackoverflow.com/a/33368029/15789

Saya telah memposting jawaban di sini.

Buka jendela perintah Windows, dan jalankan skrip ini. Jika ada perubahan dalam direktori kerja Anda, itu akan membuka terminal bash di direktori kerja Anda, dan menampilkan status git saat ini. Itu membuat jendela bash terbuka, dengan memanggil exec bash.

Jika Anda memiliki beberapa proyek, Anda dapat membuat salinan skrip ini dengan folder proyek yang berbeda, dan memanggilnya dari skrip batch utama.

RuntimeException
sumber
3

Saya menggunakan info di atas untuk membantu membuat solusi yang lebih permanen. Berikut ini akan membuat alias sh yang dapat Anda gunakan untuk membuka Git Bash:

echo @start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login > %systemroot%\sh.bat
dpate
sumber
Terima kasih dpate! Saya menempelkan pernyataan echo Anda ke dalam baris perintah dan menjalankan shdan jendela git-bash diluncurkan dan saya dapat menjalankan perintah dengan sempurna. Dapatkah menambahkan sedikit detail pada jawaban Anda yang menjelaskan cara kerjanya? Saya lebih suka belajar cara menangkap ikan daripada meminta seseorang memberi saya ikan, dan menurut saya itu akan menguntungkan orang lain yang mencari jawaban yang bagus. terima kasih
Eric Hepperle - CodeSlayer2010
0

Jawaban Endoro sudah tua dan saya tidak bisa berkomentar;

# if you want to launch from a batch file or the command line:

start "" "%ProgramFiles%\Git\bin\sh.exe" --login
ThaJay
sumber
0

Anda dapat menambahkan jalur git ke variabel lingkungan

  • Untuk x86

%SYSTEMDRIVE%\Program Files (x86)\Git\bin\

  • Untuk x64

%PROGRAMFILES%\Git\bin\

Buka cmd dan tulis perintah ini untuk membuka git bash

sh --login

Anda dapat melihat gambar GIF ini untuk lebih jelasnya:

https://media1.giphy.com/media/WSxbZkPFY490wk3abN/giphy.gif

Eng_Farghly
sumber