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

时间:2020-08-30 17:36:31

标签: git github git-commit migrate git-lfs

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

git push --mirror github

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

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

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

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

我要的甚至有可能吗?

1 个答案:

答案 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"