如何修改旧的,推送的提交,以及在其之后推送新的提交

问题描述

我正在将一个回购从gitlab迁移到github上,因为我们的回购空间不足,而且似乎无法扩大其大小。因此,自然地,我在github上创建了新的仓库,我将ssh地址添加到仓库本地实例上的现有远程服务器上,然后尝试调用

git push --mirror github

让它运行几个小时后,它失败了。在研究了可能的原因之后,我发现它可能太大而无法一次上推,因此我应该遍历成批提交并一次上推一次。在此过程中,对于添加.gitignore和.gitattributes文件的第一次提交,一切都可以正常工作。

但是,在此之后,我们开始从实际项目中推送文件,并且我们已经在推送对于github而言太大而对于gitlab而言不是太大的文件,因此它们并不表示可以在LFS中跟踪在那个时候。

基本上,我想回溯两年的提交,将LFS跟踪添加到这些文件中,在添加文件之前插入此提交,然后让它更新其余的树。

我尝试过将HEAD重置到该点,使用新的LFS数据修改.gitignore,并在添加文件之前将其向上推。但是,在尝试此路由时,现在尝试推高旧提交时会遇到错误,因为它表示旧提交已过时并且需要拉出。

我要的甚至有可能吗?

解决方法

Git LFS提供了迁移历史记录git lfs migrate

的命令

如果大文件是zip,jpg,png

首先检查试运行:

git lfs migrate info --everything --include="*.zip,*.png,*.jpg"

那就去

git lfs migrate import --everything --include="*.zip,*.jpg"

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...