내 시스템의 구성 파일 버전을 제어하기 위해 git을 사용하고 있습니다. 내 파일 시스템의 루트에 git root가 있는데 /
, 이를 제어 /etc
하고 /root
.
들어가서 /root
실행 하면 git log .zshrc
커밋 내역이 표시됩니다. .zshrc
특정 커밋의 내용을 표시하고 싶습니다 .
# git show a100e3515779a900509b52230d449a6446fa110b:.zshrc
fatal: Path 'root/.zshrc' exists, but not '.zshrc'.
Did you mean 'a100e3515779a900509b52230d449a6446fa110b:root/.zshrc' aka
'a100e3515779a900509b52230d449a6446fa110b:./.zshrc'?
# git show a100e3515779a900509b52230d449a6446fa110b:/root/.zshrc
fatal: Path '/root/.zshrc' exists on disk, but not in
# git show a100e3515779a900509b52230d449a6446fa110b:root/.zshrc
# git show a100e3515779a900509b52230d449a6446fa110b:./.zshrc
마지막 2개의 명령만 유효합니다. 왜 .zshrc
작동하지 않습니까 /root/.zshrc
? 예를 들어 가장 불편한 표기법을 사용해야 하는 이유는 무엇입니까 ./.zshrc
?
Git이 이해할 수 있도록 변경할 수 있는 구성 옵션이 있습니까 .zshrc
?/root/.zshrc
답변1
표기법 에서 <rev>:<path>
경로는 ./
또는 로 시작 하지 않는 한 현재 디렉터리가 아닌 트리 개체 자체에 상대적입니다 ../
. 두 경우 모두 …:/…
절대 경로( )는 지원되지 않으며 상대 경로만 지원됩니다.
git show a100e3515779a900509b52230d449a6446fa110b:.zshrc
이는 "a100e3515779a900509b52230d449a6446fa110b 개체를 찾아 해당 개체 내에서 파일 을 보여주세요 .zshrc
"를 의미합니다. a100e3515779a900509b52230d449a6446fa110b를 일종의 아카이브로 생각하세요. 이는 현재 디렉터리와 독립적으로 존재하며 현재 디렉터리에 대한 개념이 없습니다.
내가 아는 한, 이 경우를 이해하기 위해 구성 옵션을 변경할 수 없습니다 git show
..zshrc
./.zshrc
바라보다gitrevisions
선적 서류 비치더 알아보기.