You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

归档含Git LFS大文件的Git仓库,避免数据丢失

GitHub实例迁移:Git LFS归档全流程疑问解答

我们正在进行GitHub实例迁移:活跃仓库迁移至新GitHub实例,旧仓库克隆至备份电脑的归档存储,旧GitHub实例将被停用。部分旧仓库使用Git LFS存储大文件,需确保归档的是实际文件而非指针文件,以下是相关疑问的解答:

核心疑问解答

1. 大文件是否存储在旧GitHub实例的Git LFS服务器中?

是的,GitHub实例自带专属的Git LFS服务器,所有通过Git LFS追踪的大文件都存储在旧实例的LFS服务器上,仓库代码库中仅保留指向这些大文件的指针文件。旧实例停用后,原LFS服务器会失效,无法再从中获取大文件,所以归档时必须把实际文件拉到本地。

2. 在备份电脑上克隆仓库仅得到指针文件,是否需要在每个仓库目录安装Git LFS?

不需要逐个仓库安装,在备份电脑上执行一次全局Git LFS安装即可:

git lfs install --global

这个命令会配置Git全局钩子,后续克隆仓库时,Git LFS会自动识别指针文件并拉取对应大文件。如果已经克隆了仓库才安装Git LFS,进入仓库目录执行:

git lfs pull

就能把当前分支的大文件拉取到本地。

3. 如何将大文件及其历史记录同步至归档仓库?

要完整归档包含所有历史版本的大文件,按以下步骤操作:

  1. 先在备份电脑上完成Git LFS全局安装
  2. 以镜像模式克隆旧仓库(包含所有分支、标签和提交历史):
git clone --mirror git@旧实例域名:用户名/仓库名.git
  1. 进入克隆后的仓库目录,拉取所有历史版本的LFS文件:
git lfs fetch --all
  1. 此时本地仓库已包含完整的Git历史和对应的所有LFS实际文件,直接将整个仓库目录归档到备份存储即可。

补充疑问解答

Git LFS服务器具体位置?

GitHub实例的LFS服务器和仓库实例绑定,地址通常为https://旧实例域名/lfs,无需手动指定,Git LFS会自动从仓库的配置信息中读取服务器地址并交互。

git lfs install是设置客户端还是复制文件?

git lfs install仅用于配置Git LFS客户端,它会在Git全局配置中添加必要的钩子脚本,让Git能够识别LFS指针文件并与LFS服务器交互,不会复制任何文件。

克隆后检出大文件仅获取最新版本,是否包含文件历史?

默认的git lfs pull只会拉取当前检出分支的最新版本LFS文件。要获取所有分支、所有提交记录中的历史版本LFS文件,必须执行:

git lfs fetch --all

这个命令会拉取仓库所有历史中的LFS文件,确保归档的历史完整性。

git lfs migrate export不符合需求,该如何操作?

git lfs migrate export的作用是将仓库中已用LFS追踪的文件转换为普通Git文件,适合不再需要LFS的场景。而你的需求是归档包含LFS的完整仓库,完全不需要用到这个命令,按照前面的镜像克隆+全量LFS拉取流程即可完成完整归档。

内容的提问来源于stack exchange,提问作者mmesser314

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 03:47:45