Git

當該目錄不是目前工作目錄時,如何檢查該目錄是否在 git 工作樹中?

  • April 9, 2021

我可以測試目前目錄是否像這樣:

[[ $(git rev-parse --is-inside-work-tree 2> /dev/null) == true ]] && echo yes

..但是如何對不是目前工作目錄的目錄執行相同的操作?

只需使用-C全域選項即可git。這樣做並簡化程式碼(為什麼要解析輸出以重構直接編碼在返回狀態中的資訊?):

directory=. # or wherever
if git -C "$directory" rev-parse --is-inside-work-tree >/dev/null 2>/dev/null; then
 echo yes
fi

我懷疑最簡單的選擇是暫時更改目錄:

(cd /path/to/target && [[ $(git rev-parse --is-inside-work-tree) == true ]]) 2> /dev/null && echo yes

引用自:https://unix.stackexchange.com/questions/644078