繁体   English   中英

如何修改旧的推送提交,然后推送新提交

[英]How to modify old, pushed commit, with new commits pushed after it

我正在将一个 repo 从 gitlab 迁移到 github,因为我们的 repo 在那里用完了空间,而且我们似乎无法扩展它的大小。 因此,很自然地,我在 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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM