【发布时间】:2017-04-15 22:58:40
【问题描述】:
我想在回购历史的某个时刻访问一些 blob。
目前,我使用git show $REV:$PATH 进行此操作。但是文件非常大,我不希望它们在脚本中被读取和传输。我想获取他们的路径,然后读取为普通文件。
我可以依靠当前文档中描述的布局(例如.git/objects/ee/2403ffd236587a2b17ddc35b0e711fc99ba6a0),获取文件哈希并将其手动转换为路径吗?我的意思是它在未来的版本中不会很快改变,并且对象目录总是具有这种结构。
有没有更简单的方法可以通过一些管道命令来做到这一点?
【问题讨论】:
-
packed repositories 怎么样(例如,在执行
git repack -ad之后)?在打包的存储库中,blob 可能不作为独立文件存在。 -
.git/objects 中的文件不是原始数据。它们被压缩并有一个小标题。直接访问文件不会有任何收获。
-
@Leon @j6t 所以,换句话说,我想要的只是一个梦想,直接访问
.git目录仍然是个坏主意吗?我认为 blob 始终保持原样......
标签: git git-plumbing