我有一个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
是指针文件!