假设我在目录中有我的东西的git repo myapp:
myapp
/.git
/.gitignore
/subdirA
/subdirB
/file1.txt
/file2.txt
/(and some other stuffs)
/(and some other stuffs)
Run Code Online (Sandbox Code Playgroud)
我想file1.txt从旧提交中查看abcd123.对于另一个线程,我了解到我应该使用类似的东西:
$ git show abcd123:path/to/file1.txt
Run Code Online (Sandbox Code Playgroud)
但是,我对使用正确的路径感到困惑.我尝试过类似的东西
$ 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
Run Code Online (Sandbox Code Playgroud)
但是git不断给我一些错误信息
$ Path 'subdirA/subdirB/file1.txt' does not exist in 'abcd123'
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题呢?
小智 5
此命令将生成注释中存在的路径列表abcd123:
git ls-tree -r --name-only abcd123
Run Code Online (Sandbox Code Playgroud)
您从该命令获得的任何内容都应作为 git show abcd123:...
此外,有时./在路径上使用前导会更容易。这会自动将 替换为.从存储库根目录到工作树中当前目录的路径。例如:
cd ~/my-git-repo/dir1/dir2
git show abcd123:./Makefile # equivalent to git show abcd123:dir1/dir2/Makefile
Run Code Online (Sandbox Code Playgroud)
如果你尝试git show abcd123:Makefile它不起作用......但git确实建议(“你是说......?”)具有存储库根目录完整路径的版本和带有./......的版本,除非你也有Makefile在abcd123这种情况下的根目录中,您只会得到它,而不会发出您可能想要的警告./Makefile。
| 归档时间: |
|
| 查看次数: |
6195 次 |
| 最近记录: |