我有一个 git repo,其中许多文件应该是 lfs,因为它们大于 100M。
环顾四周,我无法找到一步一步的指南来解释如何迁移具有许多分支的真实现有存储库以及 lfs 文件在子目录中的位置。
就我而言,大文件分布在存储库中,如下所示:
code/track1/file000.pkl
code/track3/dat000.bin
code/track4/pip000.pkl
code/subcode/track5/pip000.pkl
code/subcode/track5/pop000.model
Run Code Online (Sandbox Code Playgroud)
我想将 git 项目转换为 git lfs 只需使用git lfs migrate:
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"
Run Code Online (Sandbox Code Playgroud)
但这没有任何作用。
nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)
我想转换所有的存储库,我的意思是所有文件、历史记录以及所有现有分支。
换句话说,git lfs migrate现在看起来很稳定,但用户不太友好。
跑步git lfs track "*.pkl"似乎有效果:
modified: code/track1/file000.pkl
modified: code/track4/pip000.pkl
modified: code/subcode/track5/pip000.pkl
Run Code Online (Sandbox Code Playgroud)
但接下来该怎么办。我看到它将git lfs track开始跟踪新文件或已签入存储库的现有文件。
但历史又如何呢?我很挣扎,因为我不想最终得到一个混乱的存储库,我必须从头开始重新导入或者必须处理过滤器分支。