Shell

git show 不理解相對文件名

  • July 28, 2022

我正在使用 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

有關詳細資訊,gitrevisions請參閱文件

引用自:https://unix.stackexchange.com/questions/711568