Làm cách nào để khởi chạy cửa sổ Git Bash với thư mục làm việc cụ thể bằng cách sử dụng tập lệnh?


86

Làm cách nào để khởi chạy một cửa sổ Git Bash mới với một thư mục làm việc được chỉ định bằng cách sử dụng một tập lệnh (Bash hoặc hàng loạt Windows)?

Mục tiêu của tôi là khởi chạy nhiều cửa sổ Git Bash từ một tập lệnh duy nhất, mỗi cửa sổ được đặt thành một thư mục làm việc khác nhau. Bằng cách này, tôi có thể nhanh chóng bắt đầu công việc sau khi khởi động máy tính thay vì phải mở cửa sổ Git Bash và điều hướng từng cửa sổ đến đúng thư mục làm việc.

Tôi không hỏi cách thay đổi thư mục làm việc mặc định, giống như câu hỏi này, nhưng để khởi chạy một hoặc nhiều cửa sổ đầu cuối với các thư mục làm việc khác nhau từ một tập lệnh.


1
@StevenVascellaro Câu hỏi đã được chỉnh sửa để giải thích tại sao đây không phải là một bản dupe.
holocronweaver

Điều đó có lý. Tôi đã rút lại phiếu bầu trùng lặp của mình.
Stevoisiak

Câu trả lời:


62

Một tùy chọn khác là tạo lối tắt với các thuộc tính sau:

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

Mục tiêu phải là:

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

Bắt đầu là thư mục bạn muốn lời nhắc Git Bash của mình khởi chạy vào.


1
Thanh danh! Không bao giờ biết Start incó cái gì để làm với các thư mục làm việc một chương trình cho rằng nó ở.
CausingUnderflowsEverywhere

Đây là phương pháp dễ dàng nhất. Sau đó, tôi ghim đoạn ngắn đó vào thanh tác vụ rồi đến Windows + 1, tôi giữ nó làm mục đầu tiên của thanh tác vụ, mở repo bằng git-bash trực tiếp.
Hareen Laks

48

Git Bash sử dụng cmd.execho thiết bị đầu cuối của nó cộng với các phạm vi mở rộng từ MSYS / MinGW được cung cấp bởi sh.exe, một loại cmd.exetrình bao bọc. Trong Windows, bạn khởi chạy một thiết bị đầu cuối mới bằng startlệnh.

Do đó, một tập lệnh shell khởi chạy một thiết bị đầu cuối Git Bash mới với một thư mục làm việc cụ thể là:

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

Một tập lệnh lô tương đương của Windows là:

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 

Để có được phông chữ và kích thước cửa sổ giống như Git Bash được khởi chạy từ menu bắt đầu, cách dễ nhất là sao chép cài đặt lối tắt menu bắt đầu sang mặc định của bảng điều khiển lệnh (để thay đổi mặc định, mở cmd.exe, nhấp chuột trái vào biểu tượng phía trên bên trái và chọn Mặc định).


1
Điều này phù hợp với tôi: cdđến thư mục mà tôi muốn Git Bash khởi động và sau đó chạy startlệnh trong ví dụ của bạn sẽ thực sự cung cấp cho tôi một thiết bị đầu cuối Git Bash trong dir đó. Bạn có chắc là bạn không thực hiện cd $HOME(hoặc cdkhông có args) ở đâu đó trong các tệp bash rc của mình không? (Như .bashrc,, .profile...) Cũng nên ghi nhớ ký tự ổ đĩa. Nếu bạn muốn bắt đầu Git Bash trên X:ổ đĩa, sau đó thực hiện cd x:\pathsẽ không cắt nó, bạn phải làm x:và sau đó cd \pathtrướcstart
Janos

1
Bạn đúng rồi! Tôi đã thiếu thực tế rằng bạn không thể đơn giản cd x:\path. Sẽ chỉnh sửa giải pháp của tôi cho phù hợp.
holocronweaver

Một giải pháp hoàn hảo! Hãy để tôi chỉ thêm, rằng cmd.execài đặt mặc định không giống với cài đặt Git Bash mặc định khi cài đặt Git Bash! Và bạn phải hiểu sự khác biệt giữa cài đặt mặc định ( Defaultstừ menu ngữ cảnh) và cài đặt hiện tại ( Properties). Vì vậy, những gì tôi đã làm là: (1) mở Git Bash, chọn Properties(cài đặt hiện tại), (2) tinh chỉnh nó, chính xác, những gì tôi muốn (phông chữ, kích thước cửa sổ + vị trí), (3) mở cmd.exe, chọn Defaults, (4 ) sao chép cài đặt dán từ Git Bash sang cmd.exe. Sau đó, OKtrong cmd.exe'cài đặt, Canceltrong Git Bashcài đặt của' và thì đấy!
trejder

48

Hãy thử tùy chọn --cd =. Giả sử GIT Bash của bạn nằm trong C: \ Program Files \ Git thì nó sẽ là:

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

Nếu được sử dụng bên trong khóa đăng ký, tham số thư mục có thể được cung cấp với% 1:

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


Tôi sẽ sử dụng %1tham số đăng ký như thế nào?
Erasmus Cedernaes, 27/07/17

1
câu trả lời hiện tại là quá lỗi thời, cái này nên là một!
Küzdi Máté

Điều này có vẻ là cố gắng cho một tệp hàng loạt. (.bat)
Franta

26

Hãy thêm vào câu trả lời từ @Drew Noakes:

Mục tiêu:

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

Tham số cdphải là một trong những tùy chọn để chỉ định thư mục làm việc.

Cũng lưu ý rằng tôi không có bất kỳ thông số nào --loginở đó: Thay vào đó, tôi sử dụng một ứng dụng bổ sung khác, chỉ dành riêng cho các khóa SSH: Pageant (tác nhân xác thực PuTTY) .

Bắt đầu vào:

C:\GitRepo

Theo cách tương tự, như @Drew Noakes đã đề cập / hiển thị ở đây sớm hơn, tôi cũng sử dụng nó.

Phím tắt:

Ctrl + Alt + B

Các phím tắt như vậy là một tính năng khác ít được biết đến trong Windows. Nhưng có một hạn chế: Để phím tắt có hiệu lực, nó phải được đặt ở đâu đó trên thư mục con của Người dùng: Màn hình nền là được.

Nếu bạn không muốn nó hiển thị, nhưng vẫn có thể kích hoạt, hãy đặt .lnktệp này tức là vào thư mục khởi chạy nhanh, vì trình duyệt đó được sử dụng cho các phím tắt như vậy. (bất kể hiển thị trên màn hình) # 76080 # 3619355

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

12

Ngoài ra, Win10 cung cấp cho bạn một tùy chọn để mở git bash từ thư mục làm việc của bạn bằng cách nhấp chuột phải vào thư mục của bạn và chọn GitBash tại đây.

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


4

Windows 10

Về cơ bản đây là câu trả lời của @ lengxuehx, nhưng được cập nhật cho Win 10 và nó giả định rằng cài đặt bash của bạn là từ Git Bash dành cho Windows từ các bản tải xuống chính thức của git .

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

Tôi đã kết thúc việc sử dụng này sau khi tôi mất các mục menu ngữ cảnh cho Git Bash dưới dạng lệnh của tôi để chạy từ cài đặt đăng ký. Trong trường hợp bạn tò mò về điều đó, tôi đã làm điều này:

  1. Tạo một khóa mới được gọi Bashtrong shellkhóa tạiHKEY_CLASSES_ROOT\Directory\Background\shell
  2. Thêm một giá trị chuỗi vào Icon(không phải khóa mới!) Là đường dẫn đầy đủ đến git-bash.exe của bạn, bao gồm cả phần git-bash.exe. Bạn có thể cần phải đặt nó trong dấu ngoặc kép.
  3. Chỉnh sửa giá trị mặc định của Bashvăn bản bạn muốn sử dụng trong menu ngữ cảnh nhập mô tả hình ảnh ở đây
  4. Thêm khóa phụ vào Bashđược gọicommand
  5. Sửa đổi commandgiá trị mặc định của thànhcmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit nhập mô tả hình ảnh ở đây

Sau đó, bạn sẽ có thể đóng sổ đăng ký và bắt đầu sử dụng Git Bash từ bất kỳ nơi nào có thư mục thực. Ví dụ, This PCkhông phải là một thư mục thực.

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


3
Đối với hồ sơ, mục bash git mặc định bên trong registry tại HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\command"C:\Program Files\Git\git-bash.exe" "--cd=%v."
Ferrybig

Đẹp! Cảm ơn, @Ferrybig! ^ _ ^
kayleeFrye_onDeck

4

Đây là lệnh có thể được thực thi trực tiếp trong Run dialog box(phím tắt là win+ R) và cũng hoạt động tốt được lưu dưới dạng .battập lệnh:

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

1
nó chạy cmd mới trong windows 10
kyb 24/02/16

1
@kyb nó được cho là /bdành cho Win 10
kayleeFrye_onDeck 29/09/16

@kyb tôi đã thực hiện một câu trả lời đó là một biến thể của câu trả lời lengxuehx, trong trường hợp bạn hay bất cứ ai khác vẫn đang quan tâm: stackoverflow.com/a/39779451/3543437
kayleeFrye_onDeck

3

Tôi không quen thuộc với Git Bash nhưng giả sử rằng đó là một trình bao git (chẳng hạn như git-sh) nằm trong đó /path/to/my/gitshellvà chương trình đầu cuối yêu thích của bạn được gọi là `` myterm '', bạn có thể viết kịch bản như sau:

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

Lưu ý rằng tham số -ethực thi có thể được đặt tên khác với chương trình đầu cuối yêu thích của bạn.


Cảm ơn, câu trả lời của bạn đã giúp tôi suy nghĩ đúng hướng! Đó là cách tôi thực hiện mọi thứ trong Linux, nhưng tôi không thể tìm ra cách tương tự trong MS Windows ... cho đến bây giờ! Đối với Git Bash, mytermlà cmd.exe với các bổ sung thông qua MSYS / MinGW. Để khởi chạy một cmd mới, bạn sử dụng startlệnh dành riêng cho Windows, theo sau là đường dẫn đến Git Bash's sh.exevà sau đó là bất kỳ tùy chọn dòng lệnh nào bạn thích. Câu trả lời của tôi cho biết chi tiết.
holocronweaver

-1

Tôi có thể đã đưa ra một hướng sai, nhưng, tôi thích thủ thuật này.

Sử dụng Windows Explorer, trỏ đến bất kỳ thư mục nào bạn muốn, gõ "cmd" vào thanh địa chỉ, nó sẽ mở dấu nhắc lệnh của Windows trong thư mục đó.

Nếu bạn có thư mục "Git" trong đường dẫn của mình, theo cách tương tự, bạn có thể nhập "git-bash" vào thanh địa chỉ và Git Shell sẽ mở trong thư mục đó.

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.