我正在将一个回购从gitlab迁移到github上,因为我们的回购空间不足,而且似乎无法扩大其大小。因此,自然地,我在github上创建了新的仓库,我将ssh地址添加到仓库本地实例上的现有远程服务器上,然后尝试调用
git push --mirror github
让它运行几个小时后,它失败了。在研究了可能的原因之后,我发现它可能太大而无法一次上推,因此我应该遍历成批提交并一次上推一次。在此过程中,对于添加.gitignore和.gitattributes文件的第一次提交,一切都可以正常工作。
但是,在此之后,我们开始从实际项目中推送文件,并且我们已经在推送对于github而言太大而对于gitlab而言不是太大的文件,因此它们并不表示可以在LFS中跟踪在那个时候。
基本上,我想回溯两年的提交,将LFS跟踪添加到这些文件中,在添加文件之前插入此提交,然后让它更新其余的树。
我尝试过将HEAD重置到该点,使用新的LFS数据修改.gitignore,并在添加文件之前将其向上推。但是,在尝试此路由时,现在尝试推高旧提交时会遇到错误,因为它表示旧提交已过时并且需要拉出。
我要的甚至有可能吗?
答案 0 :(得分:2)
Git LFS提供了迁移历史记录git lfs migrate
如果大文件是zip,jpg,png
首先检查试运行:
git lfs migrate info --everything --include="*.zip,*.png,*.jpg"
那就去
git lfs migrate import --everything --include="*.zip,*.png,*.jpg"