:거짓 오류 "가 아닌 자식 저장소"나는 내가 다음과 같은 오류 메시지가 표시됨</p> <p>최상위 자식 저장소 안에있어 나의 bash는 스크립트에 있는지 확인하기 위해 노력하고있어
export GIT_DIR="$(git rev-parse --show-toplevel)"
cd "$GIT_DIR"
git status
fatal: Not a git repository: ''
:거짓 오류 "가 아닌 자식 저장소"나는 내가 다음과 같은 오류 메시지가 표시됨</p> <p>최상위 자식 저장소 안에있어 나의 bash는 스크립트에 있는지 확인하기 위해 노력하고있어
export GIT_DIR="$(git rev-parse --show-toplevel)"
cd "$GIT_DIR"
git status
fatal: Not a git repository: ''
GIT_DIR
변수가 자식에 의해 --git-dir
옵션이 같은 방법을 사용한다. git은 저장소의 위치를 , 이며 작업 디렉토리 내의 .git
디렉토리입니다.
export GIT_DIR="$(git rev-parse --show-toplevel)/.git"
인 경우 작동해야합니다.
변수를 내 보내면 쉘이 호출하는 프로그램에 대한 변수 변수 인 으로 사용할 수 있습니다. 내보내기하지 않으면 쉘 변수 일 뿐이며 스크립트의 컨텍스트 내에서만 볼 수 있으며 스크립트가 호출하는 프로그램은 볼 수 없습니다. 그래서 ... export
없이 GIT_DIR을 설정하면 git 명령을 숨 깁니다 ... 그러나 일단이 마법, 중요한 변수를 내 보내면이 환경 변수가 중요하다고 생각하기 때문에 git를 혼동하게됩니다.
좋은 설명. 나는 이것이 베어 리포 지 토리 (bare repositories)에서 똑같이 작동하지 않을 것이라고 생각한다. 아마도 가장 좋은 해결책은 단순히 환경 변수를 변경하지 않는 것이다.'cd "$ (git rev-parse --show-toplevel)"' 가장 간단한 일. –
감사합니다. Tom. :) 그리고 예, 나의 일반적인 전략은 데이터의 단일 사용을위한 변수의 사용을 피하는 것입니다. 명령어 치환은 아마도 함수로 잘 작동 할 것이다. – ghoti