我们在gitlab中有一个支持git-lfs的存储库,它工作得很好。它很好地分离了pdf、电影和其他我们不想进行版本管理的东西。
有一个用户错误,有人在没有启用git-lfs支持的系统上克隆了存储库。那个人将一个pdf文件添加到git并推送回服务器。
然后,另一个用户在具有git-lfs的系统上获取该分支,并尝试将其签出:
$ git checkout pj-guide_47_mac_R_setup
Switched to branch 'pj-guide_47_mac_R_setup'
Your branch is behind 'origin/pj-guide_47_mac_R_setup' by 14 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Encountered 1 file(s) that should have been pointers, but weren't:
47.mac_R_setup/47.mac_R_setup-slides.pdf 在正确配置git-lfs来修复pdf文件的系统上,最直接的路径是什么?根据https://github.com/git-lfs/git-lfs/issues/1726的说法,git-lfs 2.3.0发布了git lfs merge import的用法,但我不能理解如何使用它。
发布于 2018-01-30 22:38:10
我问过类似的问题,是关于git-lfs问题跟踪器中的一个稍微不同的用例。git-lfs issue 2845
@larsxschneider给出了这样的答案:
“最简单的方法是:
git rm --cached <PROBLEM FILE>
git add --force <PROBLEM FILE>
git commit -m "Move files properly to GitLFS"这会将PDF文件的内容从纯Git复制到Git LFS。这种方法的缺点是您的内容的当前版本停留在纯Git的历史中(这可能会增加您的存储库的大小)。不过,未来内容的每一次更新都将只在Git LFS中进行。
作者建议我避免使用"git lfs migrate import“,除非遇到紧急情况。如果涉及多个用户,篡改历史可能会造成严重破坏。
Lars Schnieder还提到了一个新的Youtube演示文稿。"GitLFS- How to handle large files in Git - Lars Schneider - FOSSASIA Summit 2017"
发布于 2019-11-26 22:13:54
对我来说,最简单的解决方案是:
git lfs migrate import --no-rewrite path/to/file.ext
来源:https://tech-notes.maxmasnick.com/fixing-files-that-should-have-been-pointers-in-lfs-but-werent
https://stackoverflow.com/questions/48511313
复制相似问题