将现有的 git 存储库转换为 git-lfs

convert exsisting git repository to git-lfs

我正在尝试将我的 git 存储库转换为 git-lfs。我下载了 bitbucket 测试服务器,创建了一个存储库并在存储库和服务器的选项中启用了 lfs。如果我调用 git-lfs 来跟踪“*.psd”文件,它工作正常。如果我推送 .psd 文件,它们存储在 git lfs location.The 问题是,如果我将现有的存储库(客户端)推送到一个空的 git-lfs 存储库中,文件不是存储在 git-lfs 存储中。但是,如果我在那之后推送另一个 .psd 文件,它就可以正常工作。

你们知道如何将我的 repo 转换为 git-lfs 吗?我必须按原样保留历史等。我也看到了一些指南,但对我没有任何帮助。我在看 git-lfs-migrate, another script 和其他一些东西。这些都没有将跟踪的文件推送到 lfs 目录。目录

谢谢你帮我!

毛茸茸的

您遇到的问题是,当您执行 git lfs track *.psd 时,这只会影响您 随后 使用 git add 的 Photoshop 文件- 修改现有文件或新文件。任何已经提交的内容都将保持原样,嵌入 Git 存储库本身。

可以转换您的存储库历史并将大文件内容从 Git 中提取到 LFS 中,但这本质上需要更改 Git 历史。实际上,这意味着最好让每个使用此存储库的人在执行转换后克隆一个新副本。显然,做好备份并与您可能拥有的任何团队成员进行协调:)

虽然我自己只做了一些小测试,但 BFG Repo Cleaner 似乎对很多人来说都是成功的;你可能已经在你读过的线程中看到了这一点,尽管还有很多其他的噪音。这里有转换为 LFS 的具体说明:https://github.com/rtyley/bfg-repo-cleaner/releases/tag/v1.12.5

HTH