Shell
zsh:檢查我目前是否在我的 git 儲存庫中(git check-ignore)
在我的
.zshrc
中,我使用以下 git 命令(來自zsh 提示:檢查是否在 git 儲存庫中並且未被 git 忽略)來檢查我是否在 git 儲存庫中,以便我可以相應地更改提示:git check-ignore -q . 2>/dev/null if [[ $? -eq 1 ]] ; then
但是這個命令不區分我是否擁有這個儲存庫。這可能由系統上的其他使用者擁有,我沒有寫權限。
是否可以檢查我是否擁有該
.git
目錄或是否具有寫入權限?
大概您關心
.git
目錄本身的寫權限;如果是這樣,git check-ignore -q . 2>/dev/null if [[ $? -eq 1 && -w "$(git rev-parse --show-toplevel)/.git" ]]; then
then
僅噹噹前目錄是 git 儲存庫中的非忽略目錄時才會執行該塊,並且相關.git
目錄對目前使用者是可寫的。您也可以
git rev-parse
用作測試是否在 git 儲存庫中;因此,如果您不關心 git 儲存庫中被忽略的目錄,if top="$(git rev-parse --show-toplevel 2>/dev/null)" && [ -w "$top/.git" ]; then
將確定目前工作空間的
.git
目錄(如果有)是否可寫。另請參閱
[ -O "$top/.git" ]
以檢查您是否擁有該目錄(不是標準的,但大多數test
s / shell 都支持,包括zsh
)