首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何迁移到git lfs

如何迁移到git lfs
EN

Stack Overflow用户
提问于 2020-05-15 10:08:47
回答 1查看 7.5K关注 0票数 4

我有一个git,其中许多文件应该是lfs,因为它们大于100米。

环顾四周,我找不到一步一步的指南来解释如何迁移包含多个分支的真实的现有回购,以及lfs文件在子目录中的位置。

在我的例子中,大型文件分散在回购程序中如下所示:

代码语言:javascript
复制
code/track1/file000.pkl
code/track3/dat000.bin
code/track4/pip000.pkl
code/subcode/track5/pip000.pkl
code/subcode/track5/pop000.model

我想使用git lfs migrate将git项目转换为git。

代码语言:javascript
复制
git lfs install
git lfs migrate import --include="*.pkl"
git lfs migrate import --include="*.bin"
git lfs migrate import --include="*.model"
git commit -m "migrating models"

但这没什么用。

代码语言:javascript
复制
nothing to commit, working tree clean

我要转换所有的回购,我指的是所有的文件,历史和所有现有的分支。

换句话说,git lfs migrate现在似乎是稳定的,但用户并不是那么友好。

运行git lfs track "*.pkl"似乎有一种效果:

代码语言:javascript
复制
modified:  code/track1/file000.pkl
modified:  code/track4/pip000.pkl
modified:  code/subcode/track5/pip000.pkl

但接下来该怎么做。我看到git lfs track将开始跟踪一个已经签入到您的存储库中的新文件或现有文件。

但是历史呢?我很挣扎,因为我不想最终得到一个混乱的存储库,我必须从头开始重新导入,或者必须在哪里处理过滤器分支。

EN

回答 1

Stack Overflow用户

发布于 2020-06-18 14:07:16

Git提供了一个关于如何使用教程git lfs migrate

有几件事要提:

  1. 当您使用LFS迁移时,它会遍历并更改历史记录,因此当您调用git lfs migrate import --include="*.pkl"时,它会将它添加到lfs下要跟踪的.gitattributes中,并在整个历史过程中将.pkl文件迁移到LFS。因此,您不需要在事后调用git commit。注意,如果您调用git导入迁移--不重写,这将是不同的,正如文档所指出的那样,这将导致一个单独的提交,其中文件被迁移到LFS。(但是,考虑到你在问题中所指出的,我不认为这是你想要的。)
  2. 您指示您正在使用多个分支在回购中工作。因此,您可能希望使用--everything文档指示它包含迁移中的所有本地和远程分支。
  3. 如果您不确定LFS迁移是否有效,您可以检查LFS目录,查看对象是否已被移动到lfs存储区,或者运行git lfs ls-files查看哪些文件当前被跟踪并存储在LFS下。另外,您可能希望使用--verbose运行LFS迁移,它将打印出在迁移过程中移动到LFS存储中的特定文件。
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61816770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档