我想查看给定文件的历史版本:.zshrc
这将向我显示此文件更改的所有提交:
git log .zshrc
...
...
现在对于给定的提交,我想查看整个文件。但下面实际上并没有显示该文件。它显示了该提交和先前提交之间的差异:
git show bbac89168a2fbbaaa6ef31dc50616dd236c8b5d4 .zshrc
这根本不起作用:
git show bbac89168a2fbbaaa6ef31dc50616dd236c8b5d4:.zshrc
fatal: Path 'test/.zshrc' exists, but not '.zshrc'.
Did you mean 'bbac89168a2fbbaaa6ef31dc50616dd236c8b5d4:test/.zshrc' aka '2c0989168a2fbbaaa6ef31dc50616dd236c8b5d4:./.zshrc'?
最后,这符合预期。它将“猫”给定版本的文件
git show bbac89168a2fbbaaa6ef31dc50616dd236c8b5d4:./.zshrc
但是为什么git show
这种不合逻辑和令人困惑的行为呢?
为什么git show bbac89168a2fbbaaa6ef31dc50616dd236c8b5d4 .zshrc
不同于git show bbac89168a2fbbaaa6ef31dc50616dd236c8b5d4:.zshrc
git show bbac89168a2fbbaaa6ef31dc50616dd236c8b5d4:.zshrc
另外,即使 git 清楚地理解并建议我应该使用,为什么也不起作用: bbac89168a2fbbaaa6ef31dc50616dd236c8b5d4:test/.zshrc
?
为什么我不能使用相对路径:.zshrc
而必须使用完全不必要的构造:./.zshrc
?