ฉันจะเปิดหน้าต่าง Git Bash ด้วยไดเร็กทอรีการทำงานโดยใช้สคริปต์ได้อย่างไร


88

ฉันจะเปิดหน้าต่าง Git Bash ใหม่พร้อมกับไดเร็กทอรีการทำงานที่ระบุโดยใช้สคริปต์ (Bash หรือ Windows batch) ได้อย่างไร

เป้าหมายของฉันคือการเปิดหน้าต่าง Git Bash หลายรายการจากสคริปต์เดียวโดยแต่ละรายการจะตั้งค่าเป็นไดเรกทอรีการทำงานที่แตกต่างกัน ด้วยวิธีนี้ฉันสามารถทำงานได้อย่างรวดเร็วหลังจากบูตคอมพิวเตอร์แทนที่จะต้องเปิดหน้าต่าง Git Bash และนำทางแต่ละอันไปยังไดเร็กทอรีการทำงานที่ถูกต้อง

ฉันไม่ได้ถามวิธีเปลี่ยนไดเร็กทอรีการทำงานเริ่มต้นเหมือนคำถามนี้ แต่เพื่อเปิดหน้าต่างเทอร์มินัลอย่างน้อยหนึ่งหน้าต่างด้วยไดเรกทอรีการทำงานที่แตกต่างกันจากสคริปต์


1
@StevenVascellaro แก้ไขคำถามเพื่ออธิบายว่าเหตุใดจึงไม่หลอกลวง
holocronweaver

ที่สมเหตุสมผล ฉันถอนการโหวตซ้ำของฉันแล้ว
Stevoisiak

คำตอบ:


63

อีกทางเลือกหนึ่งคือการสร้างทางลัดด้วยคุณสมบัติต่อไปนี้:

ป้อนคำอธิบายภาพที่นี่

เป้าหมายควรเป็น:

"% SYSTEMDRIVE% \ Program Files (x86) \ Git \ bin \ sh.exe" - เข้าสู่ระบบ

Start inคือโฟลเดอร์ที่คุณต้องการให้ Git Bash เปิดขึ้นมา


1
ความรุ่งโรจน์! ไม่เคยรู้มาก่อนว่าStart inมีอะไรเกี่ยวข้องกับไดเร็กทอรีการทำงานที่โปรแกรมคิดว่ามีอยู่
ทำให้เกิด UnderflowsEverywhere

นี่เป็นวิธีการที่ง่ายที่สุด หลังจากนั้นฉันตรึงทางลัดนั้นไว้ที่แถบงานจากนั้น Windows + 1 ฉันเก็บไว้เป็นรายการแรกของแถบงานเปิด repo ด้วย git-bash โดยตรง
Hareen Laks

48

Git Bash ใช้cmd.exeสำหรับเทอร์มินัลและขอบเขตจาก MSYS / MinGW ซึ่งจัดทำโดยsh.exeประเภทของcmd.exewrapper ใน Windows คุณเปิดเทอร์มินัลใหม่โดยใช้startคำสั่ง

ดังนั้นเชลล์สคริปต์ที่เปิดตัวเทอร์มินัล Git Bash ใหม่พร้อมไดเร็กทอรีการทำงานเฉพาะคือ:

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

สคริปต์ชุด Windows ที่เทียบเท่าคือ:

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 

เพื่อให้ได้แบบอักษรและขนาดหน้าต่างเดียวกันกับ Git Bash ที่เปิดใช้งานจากเมนูเริ่มการคัดลอกการตั้งค่าทางลัดของเมนูเริ่มต้นไปยังค่าเริ่มต้นของคอนโซลคำสั่งนั้นง่ายที่สุด (หากต้องการเปลี่ยนค่าเริ่มต้นให้เปิดcmd.exeคลิกซ้ายที่ไอคอนด้านซ้ายบนแล้วเลือก ค่าเริ่มต้น)


1
สิ่งนี้ใช้ได้กับฉัน: cdไปยังไดเร็กทอรีที่ฉันต้องการให้ Git Bash เริ่มต้นจากนั้นการรันstartคำสั่งในตัวอย่างของคุณจะทำให้ฉันมีเทอร์มินัล Git Bash ใน dir นั้น คุณแน่ใจหรือไม่ว่าคุณไม่ได้ทำcd $HOME(หรือcdไม่มี args) ในไฟล์ bash rc ของคุณ (ชอบ.bashrc, .profile... ) โปรดจำอักษรระบุไดรฟ์ด้วย หากคุณต้องการที่จะเริ่มต้น Git Bash บนX:ไดรฟ์แล้วทำcd x:\pathจะไม่ตัดมันที่คุณต้องทำx:แล้วcd \pathก่อนstart
Janos

1
คุณพูดถูก! cd x:\pathฉันถูกหายไปความจริงที่ว่าคุณไม่สามารถเพียงแค่ จะแก้ไขโซลูชันของฉันตามนั้น
holocronweaver

โซลูชั่นที่สมบูรณ์แบบ! ให้ฉันเพิ่มเท่านั้นcmd.exeการตั้งค่าเริ่มต้นนั้นไม่เหมือนกันเนื่องจากการตั้งค่า Git Bash เริ่มต้นเมื่อติดตั้ง Git Bash! และคุณต้องเข้าใจความแตกต่างระหว่างการตั้งค่าเริ่มต้น ( Defaultsจากเมนูบริบท) และค่าปัจจุบัน ( Properties) สิ่งที่ฉันทำคือ: (1) เปิด Git Bash เลือกProperties(การตั้งค่าปัจจุบัน) (2) ปรับแต่งสิ่งที่ฉันต้องการ (แบบอักษรขนาดหน้าต่าง + ตำแหน่ง) (3) เปิดcmd.exeเลือกDefaults(4 ) การตั้งค่าจาก Git cmd.exeทุบตีเพื่อคัดลอกวาง จากนั้นOKในcmd.exe'การตั้งค่าCancelในGit Bash' การตั้งค่าและ voila!
trejder

48

ลองใช้ตัวเลือก --cd = สมมติว่า GIT Bash ของคุณอยู่ใน C: \ Program Files \ Git มันจะเป็น:

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

หากใช้ภายในรีจิสตรีคีย์พารามิเตอร์โฟลเดอร์สามารถระบุได้ด้วย% 1:

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


ฉันจะใช้%1พารามิเตอร์รีจิสทรีได้อย่างไร
Erasmus Cedernaes

1
คำตอบปัจจุบันล้าสมัยมากอันนี้น่าจะเป็นคำตอบ!
KüzdiMáté

ดูเหมือนว่าจะกล่าวถึงสำหรับไฟล์แบตช์ (.bat)
Franta

26

เพิ่มคำตอบจาก @Drew Noakes:

เป้าหมาย:

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

cdพระรามควรจะเป็นหนึ่งในตัวเลือกวิธีการระบุไดเรกทอรีการทำงาน

นอกจากนี้ยังแจ้งให้ทราบว่าผมยังไม่ได้ใด ๆ--loginพระรามที่นั่น แต่ผมใช้แอปอื่นเสริมทุ่มเทเพียงสำหรับคีย์ SSH: ประกวด (ฉาบตัวแทนการตรวจสอบ)

เริ่มใน:

C:\GitRepo

เป็นไปได้เช่นเดียวกับที่ @Drew Noakes พูดถึง / แสดงที่นี่เร็วกว่านั้นฉันก็ใช้มันเช่นกัน

ปุ่มลัด:

Ctrl + Alt + B

ทางลัดดังกล่าวเป็นอีกคุณสมบัติหนึ่งที่ไม่ค่อยมีใครรู้จักใน Windows แต่มีข้อ จำกัด : ในการปล่อยให้ทางลัดมีผลต้องวางไว้ที่ใดที่หนึ่งในไดเรกทอรีย่อยของผู้ใช้: เดสก์ท็อปไม่เป็นไร

หากคุณไม่ต้องการให้มองเห็นได้ แต่ยังคงเปิดใช้งานได้ให้วาง.lnkไฟล์นี้ไว้ในโฟลเดอร์เรียกใช้ด่วนเนื่องจาก dir มีวัตถุประสงค์สำหรับทางลัดดังกล่าว (ไม่ว่าจะแสดงบนเดสก์ท็อป) # 76080 # 3619355

"\Application Data\Microsoft\Internet Explorer\Quick Launch\"

14

นอกจากนี้ Win10 ยังให้คุณมีตัวเลือกในการเปิด git bash จากไดเร็กทอรีการทำงานของคุณโดยคลิกขวาที่โฟลเดอร์ของคุณและเลือก GitBash ที่นี่

ป้อนคำอธิบายภาพที่นี่


4

Windows 10

นี้เป็นพื้น @ คำตอบ lengxuehx แต่การปรับปรุงสำหรับ Win 10 และจะถือว่าการติดตั้งทุบตีของคุณจาก Git Bash สำหรับ Windows จากการดาวน์โหลดอย่างเป็นทางการของคอมไพล์

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

ฉันใช้สิ่งนี้หลังจากที่ฉันทำรายการเมนูบริบทสำหรับ Git Bash เป็นคำสั่งให้เรียกใช้จากการตั้งค่ารีจิสทรี ในกรณีที่คุณสงสัยเกี่ยวกับเรื่องนั้นฉันทำสิ่งนี้:

  1. สร้างคีย์ใหม่ที่เรียกว่าBashในshellกุญแจสำคัญที่HKEY_CLASSES_ROOT\Directory\Background\shell
  2. เพิ่มค่าสตริงให้กับIcon(ไม่ใช่คีย์ใหม่!) ซึ่งเป็นเส้นทางแบบเต็มไปยัง git-bash.exe ของคุณรวมถึงส่วน git-bash.exe คุณอาจต้องใส่เครื่องหมายคำพูด
  3. แก้ไขค่าเริ่มต้นของBashข้อความที่คุณต้องการใช้ในเมนูบริบท ป้อนคำอธิบายภาพที่นี่
  4. เพิ่มคีย์ย่อยเพื่อBashเรียกcommand
  5. แก้ไขcommandค่าเริ่มต้นของเป็นcmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit ป้อนคำอธิบายภาพที่นี่

จากนั้นคุณจะสามารถปิดรีจิสทรีและเริ่มใช้ Git Bash ได้จากทุกที่ที่เป็นไดเร็กทอรีจริง ตัวอย่างเช่นThis PCไม่ใช่ไดเร็กทอรีจริง

ป้อนคำอธิบายภาพที่นี่


3
สำหรับบันทึกรายการ git bash เริ่มต้นภายในรีจิสทรีHKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\commandคือ"C:\Program Files\Git\git-bash.exe" "--cd=%v."
Ferrybig

ดี! ขอบคุณ @Ferrybig! ^ _ ^
kayleeFrye_onDeck

4

นี่คือคำสั่งที่สามารถดำเนินการได้โดยตรงในRun dialog box(ทางลัดคือwin+ R) และยังบันทึกเป็น.batสคริปต์ได้ดี:

cmd /c (start /d "/path/to/dir" bash --login) && exit

1
มันทำงาน cmd ใหม่ใน windows 10
kyb

1
@kyb ควรจะเป็น/bWin 10
kayleeFrye_onDeck

@kyb ฉันได้คำตอบว่าเป็นการแก้ไขคำตอบของ lengxuehx ในกรณีที่คุณหรือใครก็ตามที่ยังสนใจ: stackoverflow.com/a/39779451/3543437
kayleeFrye_onDeck

3

ฉันไม่คุ้นเคยกับ Git Bash แต่สมมติว่าเป็น git shell (เช่นgit-sh) ที่อาศัยอยู่/path/to/my/gitshellและโปรแกรมเทอร์มินัลที่คุณชื่นชอบเรียกว่า `` myterm '' คุณสามารถเขียนสคริปต์ต่อไปนี้:

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

โปรดทราบว่าพารามิเตอร์-eสำหรับการดำเนินการอาจมีชื่อแตกต่างกันกับโปรแกรมเทอร์มินัลที่คุณชื่นชอบ


ขอบคุณคำตอบของคุณทำให้ฉันคิดไปในทิศทางที่ถูกต้อง! นั่นคือวิธีที่ฉันทำสิ่งต่างๆใน Linux แต่ฉันไม่สามารถหาสิ่งที่เทียบเท่าใน MS Windows ได้ ... จนถึงตอนนี้! สำหรับ Git Bash mytermคือ cmd.exe ที่เพิ่มผ่าน MSYS / MinGW ในการเปิด cmd ใหม่คุณใช้startคำสั่งเฉพาะของ Windows ตามด้วยเส้นทางไปยัง Git Bash sh.exeจากนั้นเลือกตัวเลือกบรรทัดคำสั่งที่คุณต้องการ คำตอบของฉันให้รายละเอียด
holocronweaver

-1

ฉันอาจกำหนดทิศทางผิด แต่ฉันชอบเคล็ดลับนี้

ใช้ Windows Explorer ชี้ไปที่ไดเร็กทอรีที่คุณต้องการพิมพ์ "cmd" ในแถบที่อยู่ซึ่งจะเปิดพรอมต์คำสั่งของ Windows ในไดเรกทอรีนั้น

หากคุณมีไดเรกทอรี "Git" ในเส้นทางของคุณในลักษณะเดียวกันคุณสามารถพิมพ์ "git-bash" ในแถบที่อยู่และ Git Shell จะเปิดขึ้นในไดเรกทอรีนั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.