如何修改旧的、推送的提交,之后再推送新的提交



我正在将回购从gitlab迁移到github的过程中,因为我们的回购空间不足,而且我们似乎无法扩展它的大小。因此,很自然,我在github上创建了新的repo,我将ssh地址添加到repo的本地实例上的现有远程,并尝试调用

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,*.png,*.jpg"

最新更新