Bagaimana cara meluncurkan jendela Git Bash dengan direktori kerja tertentu menggunakan skrip?

88

Bagaimana saya bisa meluncurkan jendela Git Bash baru dengan direktori kerja yang ditentukan menggunakan skrip (baik Bash atau Windows batch)?

Tujuan saya adalah meluncurkan beberapa jendela Git Bash dari satu skrip, masing-masing diatur ke direktori kerja yang berbeda. Dengan cara ini saya dapat dengan cepat mulai bekerja setelah mem-boot komputer daripada harus membuka jendela Git Bash dan menavigasi masing-masing ke direktori kerja yang benar.

Saya tidak bertanya bagaimana mengubah direktori kerja default, seperti pertanyaan ini, tetapi untuk meluncurkan satu atau lebih jendela terminal dengan direktori kerja yang berbeda dari sebuah skrip.

holocronweaver.dll
sumber
1
@StevenVascellaro Pertanyaan yang telah diedit untuk menjelaskan mengapa ini bukan penipuan.
holocronweaver
Itu masuk akal. Saya telah mencabut suara duplikat saya.
Stevoisiak

Jawaban:

63

Opsi lainnya adalah membuat pintasan dengan properti berikut:

masukkan deskripsi gambar di sini

Target harus:

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

Start in adalah folder yang Anda inginkan agar prompt Git Bash Anda diluncurkan.

Drew Noakes
sumber
1
Pujian! Tidak pernah tahu Start inada hubungannya dengan direktori kerja yang dipikirkan program.
CausingUnderflowsEverywhere
Ini adalah cara termudah. Setelah itu, saya menyematkan pintasan itu ke bilah tugas lalu Windows + 1, saya menyimpannya sebagai item pertama bilah tugas, membuka repo dengan git-bash secara langsung.
Hareen Laks
48

Git Bash menggunakan cmd.exeterminalnya ditambah perpanjangan dari MSYS / MinGW yang disediakan oleh sh.exe, semacam cmd.exepembungkus. Di Windows Anda meluncurkan terminal baru menggunakan startperintah.

Jadi skrip shell yang meluncurkan terminal Git Bash baru dengan direktori kerja tertentu adalah:

(cd C:/path/to/dir1 && start sh --login) &
(cd D:/path/to/dir2 && start sh --login) &

Skrip batch Windows yang setara adalah:

C:
cd \path\to\dir1
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login 
D:
cd \path\to\dir2
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login 

Untuk mendapatkan font dan ukuran jendela yang sama dengan yang diluncurkan Git Bash dari menu mulai, yang paling mudah adalah menyalin pengaturan pintasan menu mulai ke default konsol perintah (untuk mengubah default, buka cmd.exe, klik kiri ikon kiri atas, dan pilih Default).

holocronweaver.dll
sumber
1
Ini berfungsi untuk saya: cdke direktori saya ingin Git Bash dimulai, dan kemudian menjalankan startperintah dalam contoh Anda akan benar-benar memberi saya terminal Git Bash di direktori itu. Apakah Anda yakin tidak melakukan cd $HOME(atau cdtanpa args) di suatu tempat di file bash rc Anda? (Seperti .bashrc,, .profile...) Ingatlah juga huruf drive. Jika Anda ingin memulai Git Bash pada X:drive, maka melakukan cd x:\pathtidak akan memotongnya, Anda harus melakukannya x:dan kemudian cd \pathsebelumstart
janos
1
Kamu benar! Saya kehilangan fakta bahwa Anda tidak bisa begitu saja cd x:\path. Akan mengedit solusi saya sesuai.
holocronweaver
Solusi yang tepat! Izinkan saya menambahkan, bahwa cmd.exepengaturan default tidak sama, seperti pengaturan default Git Bash pada instalasi Git Bash! Dan Anda harus memahami perbedaan antara pengaturan default ( Defaultsdari menu konteks) dan yang sekarang ( Properties). Jadi, yang saya lakukan adalah: (1) buka Git Bash, pilih Properties(pengaturan saat ini), (2) sesuaikan, persis seperti yang saya inginkan (font, ukuran jendela + posisi), (3) buka cmd.exe, pilih Defaults, (4) ) salin-tempel pengaturan dari Git Bash ke cmd.exe. Kemudian OKdalam cmd.exe'pengaturan, Canceldalam Git Bashpengaturan dan voila!
trejder
48

Coba opsi --cd =. Dengan asumsi GIT Bash Anda berada di C: \ Program Files \ Git, itu akan menjadi:

"C:\Program Files\Git\git-bash.exe" --cd="e:\SomeFolder"

Jika digunakan di dalam kunci registri, parameter folder dapat diberikan dengan% 1:

"C:\Program Files\Git\git-bash.exe" --cd="%1"

Mike Kowalski
sumber
Bagaimana cara menggunakan %1parameter registri?
Erasmus Cedernaes
1
jawaban saat ini sangat usang, yang ini harus menjadi satu!
Küzdi Máté
Sepertinya ini untuk file batch. (.bat)
Franta
26

Mari tambahkan jawaban dari @Drew Noakes:

Target:

"C:\Program Files\Git\git-bash.exe" --cd=C:\GitRepo

Itu cd param harus menjadi salah satu pilihan cara untuk menentukan direktori kerja.

Perhatikan juga, bahwa saya tidak memiliki --loginparameter apa pun di sana: Sebagai gantinya, saya menggunakan aplikasi tambahan lain, yang didedikasikan hanya untuk kunci SSH: Pageant (agen otentikasi PuTTY) .

Mulai di:

C:\GitRepo

Dengan cara yang sama, seperti yang disebutkan / ditampilkan oleh @Drew Noakes di sini lebih awal, saya juga menggunakannya.

Tombol pintas:

Ctrl + Alt + B

Pintasan semacam itu adalah fitur lain yang kurang dikenal di Windows. Namun ada batasan: Agar pintasan berfungsi, pintasan harus ditempatkan di suatu tempat di subdirektori Pengguna: Desktop baik-baik saja.

Jika Anda tidak ingin itu terlihat, namun masih dapat diaktifkan, letakkan .lnkfile ini yaitu ke folder luncur cepat, karena direktori tersebut ditujukan untuk pintasan tersebut. (tidak peduli apakah ditampilkan di desktop) # 76080 # 3619355

"\Application Data\Microsoft\Internet Explorer\Quick Launch\"
Franta
sumber
14

Selain itu, Win10 memberi Anda opsi untuk membuka git bash dari direktori kerja Anda dengan mengklik kanan folder Anda dan memilih GitBash di sini.

masukkan deskripsi gambar di sini

monkrus
sumber
4

Windows 10

Ini pada dasarnya adalah jawaban @ lengxuehx, tetapi diperbarui untuk Win 10, dan ini mengasumsikan instalasi bash Anda dari Git Bash untuk Windows dari unduhan resmi git .

cmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit

Saya akhirnya menggunakan ini setelah saya kehilangan item menu konteks untuk Git Bash sebagai perintah saya untuk menjalankan dari pengaturan registri. Jika Anda penasaran tentang itu, saya melakukan ini:

  1. Buat key baru yang disebut Bashdi shellkunci diHKEY_CLASSES_ROOT\Directory\Background\shell
  2. Tambahkan nilai string ke Icon (bukan kunci baru!) Yang merupakan jalur lengkap ke git-bash.exe Anda, termasuk bagian git-bash.exe. Anda mungkin perlu membungkusnya dengan tanda kutip.
  3. Edit nilai default Bashke teks yang ingin Anda gunakan di menu konteks masukkan deskripsi gambar di sini
  4. Tambahkan sub-kunci untuk Bashdipanggilcommand
  5. Ubah commandnilai default menjadicmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit masukkan deskripsi gambar di sini

Maka Anda harus dapat menutup registri dan mulai menggunakan Git Bash dari direktori mana pun yang sebenarnya. Misalnya, This PCbukan direktori sebenarnya.

masukkan deskripsi gambar di sini

kayleeFrye_onDeck
sumber
3
Sebagai catatan, entri git bash default di dalam registri HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\commandadalah"C:\Program Files\Git\git-bash.exe" "--cd=%v."
Ferrybig
Bagus! Terima kasih, @Ferrybig! ^ _ ^
kayleeFrye_onDeck
4

Ini adalah perintah yang dapat dijalankan secara langsung Run dialog box(pintasannya win+ R) dan juga berfungsi dengan baik disimpan sebagai .batskrip:

cmd /c (start /d "/path/to/dir" bash --login) && exit
lengxuehx.dll
sumber
1
itu menjalankan cmd baru di windows 10
kyb
1
@kyb itu seharusnya /buntuk Win 10
kayleeFrye_onDeck
@kyb Saya membuat jawaban yang merupakan modifikasi dari jawaban lengxuehx, seandainya Anda atau orang lain masih tertarik: stackoverflow.com/a/39779451/3543437
kayleeFrye_onDeck
3

Saya tidak terbiasa dengan Git Bash tetapi berasumsi bahwa itu adalah git shell (seperti git-sh) yang berada di /path/to/my/gitshelldan program terminal favorit Anda disebut `myterm ', Anda dapat membuat skrip berikut ini:

(cd dir1; myterm -e /path/to/my/gitshell) &
(cd dir2; myterm -e /path/to/my/gitshell) &
...

Perhatikan bahwa parameter -euntuk eksekusi dapat diberi nama berbeda dengan program terminal favorit Anda.

Marcus Rickert
sumber
Terima kasih, jawaban Anda membuat saya berpikir ke arah yang benar! Begitulah cara saya melakukan sesuatu di Linux, tetapi saya tidak dapat menemukan padanannya di MS Windows ... sampai sekarang! Untuk Git Bash, mytermadalah cmd.exe dengan tambahan melalui MSYS / MinGW. Untuk meluncurkan cmd baru, Anda menggunakan startperintah khusus Windows diikuti dengan jalur ke Git Bash sh.exedan kemudian opsi baris perintah apa pun yang Anda suka. Jawaban saya memberikan detail.
holocronweaver
-1

Saya mungkin memberikan arah yang salah, tapi, saya suka trik ini.

Menggunakan Windows Explorer, menunjuk ke direktori yang Anda inginkan, ketik "cmd" di bilah alamat itu akan membuka prompt perintah Windows di direktori itu.

Jika Anda memiliki direktori "Git" di jalur Anda, dengan cara yang sama, Anda dapat mengetik "git-bash" di bilah alamat dan Git Shell akan terbuka di direktori itu.

Adauto Bronzatti
sumber