Git:在特定目錄中開啟Git-Bash

Git:在特定目錄中開啟Git-Bash

我可以透過多種方式透過 Windows 命令提示字元啟動 git-bash:

"C:\Program Files\Git\bin\sh.exe"
"C:\Program Files\Git\git-bash.exe"
"C:\Program Files\Git\usr\bin\mintty.exe"

我想使用這樣的呼叫在特定目錄中啟動 git-bash 。


作為上下文,我在 SAS 增強編輯器中執行此操作。實際的調用是

%sysexec(start "" "C:\Program Files\Git\bin\sh.exe" && exit);

對於不熟悉 SAS 的人,%sysexec請開啟 Windows 命令提示字元的實例並發出作為參數給出的任何命令。它的效果出奇的好。但是,我希望能夠在特定目錄中啟動 git-bash,而不僅僅是在 home 中。

為此,我可以在以下位置建立一個條目.bashrc

cd /c/new/starting/dir

然而,這樣做的麻煩是,每當我打開 git-bash 時,例如透過特定資料夾中的上下文選單,預設目錄是.bashrc.

我看到存在 git-bash 啟動選項喜歡--cd-to-home--cd=<path>但我無法讓他們工作。例如,

"C:\Program Files\Git\bin\sh.exe" --cd-to-home
"C:\Program Files\Git\bin\sh.exe --cd-to-home"
"C:\Program Files\Git\git-bash.exe" --cd-to-home
"C:\Program Files\Git\git-bash.exe --cd-to-home"
etc.

是否可以從 Windows 命令提示字元在特定目錄中啟動 git-bash?如果是這樣,正確的語法是什麼?

獎金:在 50 個字元以內完成的獎勵積分

答案1

"C:\Program Files\Git\git-bash.exe" --cd=c:\path\to\folder

答案2

一個可能的解決方案是在打開 git-bash 之前更改目錄。預設情況下,git-bash 在目前目錄中開啟。為此,請cd在 之前撥打電話start

cd C:\specific\dir\to\open && start "" "C:\Program Files\Git\bin\sh.exe"

由於這是在 SAS 中完成的,因此可以將特定目錄儲存在巨集變數中。這保證了 50 個字元以內的要求(因此可以從KEYS選單中的熱鍵呼叫)。您可以在程式碼中的某個位置指派 Git 工作目錄,

%let gwd = C:\specific\dir\to\open;

然後調用%sysexec看起來像

%sysexec(cd &gwd. && start "" "C:\Program Files\Git\bin\sh.exe" && exit);

其工作原理如下。首先,SAS 將擴充&gwd.然後它會開啟 Windows 命令提示字元。將cd目錄變更為&gwd.解決的任何內容。然後 Git-bash 在當前目錄中開啟(已變更為&gwd.)。最後,每當 git-bash 關閉時,exit都會發出命令,關閉 Windows 命令提示字元會話。

不幸的是,最初的版本似乎cd在呼叫和開啟 git-bash 之間引入了足夠的延遲,這很煩人。我懷疑cd在 git-bash 中發出命令可能會更快,但這種方法確實有效。

答案3

您可以建立以下腳本:

cd c:\path\to\particular\directory
"C:\Program Files\Git\bin\sh.exe" 

將其另存為whatever.cmdwhatever.bat併雙擊它。

為了方便起見,您可以按照以下步驟將腳本新增至工作列。我想我會包含這個,因為它並不像您想像的那麼容易(不能簡單地將腳本本身拖到任務欄):

  1. 右鍵單擊腳本並選擇“建立快捷方式”
  2. 右鍵單擊您建立的快捷方式並選擇“屬性”
  3. 在「快捷方式」、「目標」下,輸入:cmd /c C:\path\to\your\script\whatever.cmd
  4. 筆記:您可能需要指定完整路徑指令(例如,C:\Windows\System32\cmd.exe...)

現在,只需單擊任務欄上的命令即可一鍵運行腳本。

相關內容