zsh: 현재 내 Git 저장소에 있는지 확인하세요(git check-ignore).

zsh: 현재 내 Git 저장소에 있는지 확인하세요(git check-ignore).

광산에서는 .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)

관련 정보