Shell
git show 不理解相對文件名
我正在使用 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
?
在
<rev>:<path>
符號中,路徑是相對於樹形對象本身的,而不是相對於目前目錄的,除非它以./
or開頭../
。git show a100e3515779a900509b52230d449a6446fa110b:.zshrc
意思是“找到 a100e3515779a900509b52230d449a6446fa110b 對象,然後在該對像中,顯示
.zshrc
文件”。將 a100e3515779a900509b52230d449a6446fa110b 視為各種存檔;它獨立於您的目前目錄而存在,並且沒有您目前目錄的概念。據我所知,沒有配置選項可以更改以在這種情況下
git show
進行理解。.zshrc``./.zshrc