我们说我在目录myapp
中有我的东西的git repo:
myapp
/.git
/.gitignore
/subdirA
/subdirB
/file1.txt
/file2.txt
/(and some other stuffs)
/(and some other stuffs)
我想从旧提交file1.txt
查看abcd123
。对于another thread,我了解到我应该使用类似的东西:
$ git show abcd123:path/to/file1.txt
但是,我对使用正确的路径感到困惑。我尝试过像
这样的东西$ git show abcd123:myapp/subdirA/subdirB/file1.txt
$ git show abcd123:subdirA/subdirB/file1.txt
$ git show abcd123:subdirB/file1.txt
$ git show abcd123:file1.txt
但是git不断给我提供错误信息,比如
$ Path 'subdirA/subdirB/file1.txt' does not exist in 'abcd123'
如何解决这个问题?
答案 0 :(得分:4)
此命令将生成评论INotificationService
中存在的路径列表:
abcd123
您从该命令获得的任何内容都应该作为git ls-tree -r --name-only abcd123
此外,有时在路径上使用前导git show abcd123:...
会更容易。这会自动将./
替换为从存储库根目录到工作树中当前目录的路径。例如:
.
如果您尝试cd ~/my-git-repo/dir1/dir2
git show abcd123:./Makefile # equivalent to git show abcd123:dir1/dir2/Makefile
它不起作用......但是git确实建议("您的意思是......?")这两个版本的完整路径来自存储库根目录和带有git show abcd123:Makefile
的版本...除非你在./
的根目录中也有一个Makefile
,在这种情况下你只是得到它而没有警告你可能有我想要abcd123
。