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

问题描述 投票:0回答:3

我有一个 Git LFS 存储库,并且在本地我已经提取了所有 LFS 文件。我想检查 LFS 使用的“指针”文件,但我只能看到实际的 LFS 二进制文件。

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

git git-lfs
3个回答
0
投票

您需要在本地“git lfs pull”,才能看到lfs文件内容。


0
投票

简短回答

您可以通过以下方式查看指针文件的内容:

$ 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

这是我的存储库中文件指针的内容(比如

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
您的存储库并安装了 git-lfs,您将在
path/to/myfile.a
处获得完整文件。但在没有 LFS 的情况下实际克隆存储库很有趣:

$ GIT_LFS_SKIP_SMUDGE=1 git clone <repository>

你会看到现在

myfile.a
是指针文件!


0
投票

你需要运行:

git lfs install

配置存储库来处理 lfs 文件。 使用后有:

git lfs pull

提取 lfs 文件的内容。

注意:以后,运行 git lfs install 一次后,LFS 文件将自动下拉。

但是每当你遇到问题时,你只会看到:

version https://git-lfs.github.com/spec/v1
oid sha256:80db5c652cce59e569e3c7fb2dc92d3bf598251315bea41aee037f2054bd32e
size 251000

您可以使用

git lfs pull
来获取文件的内容。

© www.soinside.com 2019 - 2024. All rights reserved.