从github迁移源后显示旧的sha256值

从github迁移源后显示旧的sha256值,git,github,git-lfs,Git,Github,Git Lfs,我在GitHub中有一个名为RepoA的存储库,其中包含一些大文件。 我将RepoA从GitHub迁移到GitLab 之后,我从GitLab克隆了RepoA源代码。如果我跑 git show file1.tar 我得到了以下信息: +version https://git-lfs.github.com/****/v1 +oid sha256:*****************hgxs7y726726746881e7***** +size 96776698 为什么在将RepoA迁移到GitLa

我在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 url
  • 是否有任何方法可以删除附加到
    file.tar
    的GitHub旧sha256值

  • 这些是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文件不是文本文件,所以这样显示在终端上不是一个好主意。

    谢谢您的回复@bk2204。1,当我们更改git lfs文件的内容并再次推送到存储库时,SHA-256值是否会更改?2、如何使用git命令添加[filter“lfs”]smudge=git lfs smudge--skip--%f inside.git/config?如果文件内容更改,SHA-256值将更改。对于2,您可以运行
    git lfs install--local--skip smudge
    。谢谢,最后一个问题,同时推动获取以下行:lfs上载缺少的对象:(0/1),0 B|0 B/s(缺少)file1.tar(******************0233f2bf22bcb011fef16f*****)“我尝试了很多方法,但只有在禁用git lfs后才能推送。但是我想用git lfs推送“我还运行了$git config lfs.true$git config lfs.allowCompletePush true,但我得到了预接收钩子错误。然后使用$git lfs推送原始主机获取:lfs上载缺少的对象:(0/1),0 B|0 B/s(缺少)file1.tar(**********0233f2bf22bcb011fef16f*****)假设我的lfs文件*.tar的大小很小,我可以验证克隆的fine是指针文件还是实际的大文件。我是否有任何用于此的命令?(假设lfs文件是由某人推送的,而不是由我推送的)