鉱山では、.zshrc
次のgitコマンドを使用します(fromzsh ヒント: git リポジトリ内にあり、git で無視されないことを確認してください。)私はgitリポジトリにいることを確認してそれに応じてプロンプトを変更できます。
git check-ignore -q . 2>/dev/null
if [[ $? -eq 1 ]] ; then
しかし、このコマンドは私がリポジトリを所有しているかどうかを区別しません。システムの他のユーザーがこのアイテムを所有している可能性がありますが、私には書き込み権限がありません。
.git
私がディレクトリを所有していること、書き込み権限があることを確認できますか?
答え1
.git
もしそうなら、おそらくディレクトリ自体に対する書き込み権限に興味があるでしょう。
git check-ignore -q . 2>/dev/null
if [[ $? -eq 1 && -w "$(git rev-parse --show-toplevel)/.git" ]]; then
then
このブロックは、現在のディレクトリがgitリポジトリで無視できないディレクトリであり、関連.git
ディレクトリに現在のユーザーが書き込める場合にのみ実行されます。
gitリポジトリ内でこれをテストとして使用するgit rev-parse
こともできるので、gitリポジトリで無視されるディレクトリを気にしない場合は、
if top="$(git rev-parse --show-toplevel 2>/dev/null)" && [ -w "$top/.git" ]; then
現在のワークスペースの.git
ディレクトリ(存在する場合)が書き込み可能かどうかを決定します。
以下も[ -O "$top/.git" ]
参照してください。私自身test
ディレクトリ(標準ではありませんが、ほとんどのs / shellでサポートされていますzsh
)