我在GitHub上有一个名为RepoA
的存储库,其中包含一些大文件。
我将RepoA
从GitHub迁移到了GitLab。
此后,我从GitLab克隆了RepoA
个源。如果我跑
git show file1.tar
我收到以下消息:
+version https://git-lfs.github.com/****/v1
+oid sha256:*****************hgxs7y726726746881e7*****
+size 96776698
RepoA
迁移到GitLab之后,为什么在这里获得GitHub网址?file.tar
的GitHub旧sha256值?答案 0 :(得分:0)
这些是Git LFS使用的指针文件。由于Git LFS将大型文件存储在主要Git数据之外,因此这些文件可用于查找正确的数据。
要回答问题1,version
行中的URL是一个版本标识符,指示Git LFS规范的版本,而不是存储库所特有的任何版本。所有Git LFS文件的托管位置都相同。
要回答问题2,文件的SHA-256值未更改。 SHA-256是用于唯一标识文件的加密哈希函数。如果该文件之前具有给定的哈希,则现在将具有相同的哈希。
请注意,当您使用git show
时,默认情况下它不会应用污迹或干净的过滤器(例如Git LFS使用的过滤器),因此将显示LFS文件的指针文件。您可以通过执行以下操作查看实际的大文件:
$ git -c diff.lfs.textconv=cat show --textconv file1.tar
但是,通常tar文件不是文本文件,因此像这样将它们显示在终端上并不是一个好主意。