Git
當該目錄不是目前工作目錄時,如何檢查該目錄是否在 git 工作樹中?
我可以測試目前目錄是否像這樣:
[[ $(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