这个问题的另一个标题可能是“如何检出 Git-LFS 托管文件的多个版本?”
我想检查存储在 Git-LFS 中的文件的多个版本。因此,我希望在我的工作目录中并排放置此文件的多个版本。像这样的事情是我的想法:
git show v1:./myfile.ipynb > myfile-v1.ipynb
git show v2:./myfile.ipynb > myfile-v2.ipynb
Run Code Online (Sandbox Code Playgroud)
这不能按预期工作:文件由 Git-LFS 管理,因此git show每个版本的内容看起来像
version https://git-lfs.github.com/spec/v1
oid sha256:62aafe00ec8b61a37dd729e7d3a723382...
size 20439
Run Code Online (Sandbox Code Playgroud)
我对文件的“真实”、Git-LFS 管理的内容感兴趣,而不是 LFS 存储在 Git 自己的树中的指针文件。
如何创建未跟踪的、自定义命名的文件,每个文件都包含 Git-LFS 跟踪的文件的特定版本?这不需要是一个单一的命令,我接受了 Git,需要用于单一概念操作的多步骤脚本。
将 lfs 指针放入管道git lfs smudge中将产生您想要的结果。例如:
git cat-file blob <blob-sha> | git lfs smudge
Run Code Online (Sandbox Code Playgroud)
或者,如果您有一个 commit-ish(一个提交哈希、分支名称、 justHEAD等)和一个文件名:
git cat-file blob <commit-ish>:path/to/my-large-file.name | git lfs smudge
Run Code Online (Sandbox Code Playgroud)
您可以将输出重定向到文件中。
| 归档时间: |
|
| 查看次数: |
1189 次 |
| 最近记录: |