我有一个git,其中许多文件应该是lfs,因为它们大于100米。
环顾四周,我找不到一步一步的指南来解释如何迁移包含多个分支的真实的现有回购,以及lfs文件在子目录中的位置。
在我的例子中,大型文件分散在回购程序中如下所示:
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。
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"但这没什么用。
nothing to commit, working tree clean我要转换所有的回购,我指的是所有的文件,历史和所有现有的分支。
换句话说,git lfs migrate现在似乎是稳定的,但用户并不是那么友好。
运行git lfs track "*.pkl"似乎有一种效果:
modified: code/track1/file000.pkl
modified: code/track4/pip000.pkl
modified: code/subcode/track5/pip000.pkl但接下来该怎么做。我看到git lfs track将开始跟踪一个已经签入到您的存储库中的新文件或现有文件。
但是历史呢?我很挣扎,因为我不想最终得到一个混乱的存储库,我必须从头开始重新导入,或者必须在哪里处理过滤器分支。
发布于 2020-06-18 14:07:16
Git提供了一个关于如何使用教程的git lfs migrate
有几件事要提:
git lfs migrate import --include="*.pkl"时,它会将它添加到lfs下要跟踪的.gitattributes中,并在整个历史过程中将.pkl文件迁移到LFS。因此,您不需要在事后调用git commit。注意,如果您调用git导入迁移--不重写,这将是不同的,正如文档所指出的那样,这将导致一个单独的提交,其中文件被迁移到LFS。(但是,考虑到你在问题中所指出的,我不认为这是你想要的。)--everything,文档指示它包含迁移中的所有本地和远程分支。git lfs ls-files查看哪些文件当前被跟踪并存储在LFS下。另外,您可能希望使用--verbose运行LFS迁移,它将打印出在迁移过程中移动到LFS存储中的特定文件。https://stackoverflow.com/questions/61816770
复制相似问题