如何修改旧的、推送的提交,并在其后推送新的提交

Chr*_*ole 2 git github migrate git-commit git-lfs

我正在将一个存储库从 gitlab 迁移到 github,因为我们的存储库空间不足,而且我们似乎无法扩展它的大小。因此,很自然地,我在 github 上创建了新的存储库,将 ssh 地址添加到本地存储库实例上的现有遥控器中,然后尝试调用

git push --mirror github
Run Code Online (Sandbox Code Playgroud)

让它运行几个小时后,它失败了。在研究了这可能的原因之后,我发现它可能太大而无法一次推送,我应该循环一批提交并一次推送它们。在此过程中,添加 .gitignore 和 .gitattributes 文件的第一次提交一切正常。

然而,就在此时,我们从实际项目中推送文件,并且我们已经推送了对于 github 来说太大但对于 gitlab 来说不太大的文件,因此此时它们并未表示在 LFS 中进行跟踪。

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

我尝试将 HEAD 重置回该点,使用新的 LFS 数据修改 .gitignore,并在添加文件之前将其推高。然而,当尝试这条路线时,我现在在尝试推送旧提交时遇到错误,因为它说旧提交已过期并且需要拉取。

我所要求的可能吗?

Ôre*_*rel 5

Git LFS 提供了一个命令来迁移你的历史记录git lfs migrate

如果您的大文件是 zip、jpg、png

首先检查试运行:

git lfs migrate info --everything --include="*.zip,*.png,*.jpg"
Run Code Online (Sandbox Code Playgroud)

然后就去做吧

git lfs migrate import --everything --include="*.zip,*.png,*.jpg"
Run Code Online (Sandbox Code Playgroud)