我有一个.tex来自许多提交前的文件版本,我想获得一份副本.我有提交的sha1哈希值,它具有我想要的那个文件的版本.我不想替换当前版本的文件.相反,我想获得一个单独的副本,反映它在旧版本中的状态.
许多类似的问题建议使用git checkout <sha1> -- file.tex,但这只是一直给出"错误:pathspec'file.tex'与git已知的任何文件都不匹配."
我感兴趣的文件最初存在于存储库的顶级目录中.我目前在存储库的子目录中尝试运行此命令,以便在子目录中获取旧版本的file.tex.
这可能吗?我怎样才能做到这一点?
qqx*_*qqx 64
您可以使用git cat-file将文件的内容转储到标准输出并将其重定向到所需的目标:
git cat-file -p <sha1>:./file.tex > wherever.tex
Run Code Online (Sandbox Code Playgroud)
./如果您位于存储库的子目录中,那么这是必需的,如果您位于存储库的顶层,则可以省略它.此外,这可能不适用于旧版本的git,在这种情况下,您需要显式提供相对于存储库根目录的文件的完整路径.
我认为最好的解决方案是暂时覆盖你的文件.在您的存储库的顶级:
git checkout <sha1> file.tex
cp file.tex directory
git checkout HEAD file.tex
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20228 次 |
| 最近记录: |