如何在Git LFS中查看指针文件的内容

  • 本文关键字:文件 指针 Git LFS git git-lfs
  • 更新时间 :
  • 英文 :


我有一个Git LFS repo,在本地我已经提取了所有的LFS文件。我想检查LFS使用的"指针"文件,但我所能看到的只是实际的LFS二进制文件。

在哪里/如何显式地看到git中的指针文件,而不是它们指向的二进制文件?

您需要"git lfs pull";在您的本地,然后您可以看到lfs文件的内容。

简短回答

您可以使用以下内容查看指针文件的内容:

$ git cat-file -p :path/to/myfile.a

更多详细信息

规格很清晰,也很小。我不知道所有的细节,但我的理解如下:

当使用git-lfs时,它会创建(除其他外(一个文件夹.git/lfs,在其中下载重文件(可以在$ git lfs env的输出中看到(。这些文件不会与git历史记录一起保存,而是单独保存(例如https://git-lfs.github.com)。git版本是指向这些文件的指针,如下所示:

version https://git-lfs.github.com/spec/v1
oid sha256:907b5c652cce59e009e3c7fb2dc92d3bf598251315bed741aee037f2046bd32e
size 251222

这是我的repo中一个指针的内容,用于一个文件(比如path/to/myfile.a(,我用以下命令显示了它:

$ git cat-file -p :path/to/myfile.a

请注意,path/to/myfile.a相对于存储库的根

从上面的oid,我们可以找到git-lfs下载到.git/lfs中的文件,在我的情况下,它在这里:

.git/lfs/objects/90/7b/907b5c652cce59e009e3c7fb2dc92d3bf598251315bed741aee037f2046bd32e

现在,如果您只git clone您的repo并安装了git-lfs,那么您将在path/to/myfile.a中获得完整的文件。但有趣的是,实际上在没有LFS的情况下克隆回购:

$ GIT_LFS_SKIP_SMUDGE=1 git clone <repository>

您将看到现在myfile.a是指针文件!

最新更新