Git推送含大文件后分支超前,如何移除大文件恢复分支同步
问题:移除最新提交中的大文件并同步分支
我希望git status显示“Your branch is up to date with 'origin/all_work'”,但当前无法实现该状态,导致无法创建新提交并推送内容。
奇怪的是,执行git diff --staged或git diff --cached时看不到相关变更,仅执行git diff origin/main..HEAD时,才会显示如下输出:
diff --git a/100000000values.zip b/100000000values.zip new file mode 100644 index 0000000..f910aaf Binary files /dev/null and b/100000000values.zip differ
我尝试git reset --hard但无效,推测因100000000values.zip属于最后一次提交,该命令仅回到该提交状态,文件仍保留在暂存区。我不想重置到更早的提交,以免丢失已推送的内容。
有没有办法仅从暂存区删除100000000values.zip而不重置当前状态?
解决方案
先提交需要保留的文件,再通过git rebase -i完成操作:
- 先提交你需要保留的文件,避免变基过程中丢失内容
- 此时仓库会生成两个提交:一个包含所需文件和大文件
100000000values.zip,另一个仅包含所需文件(不含大文件) - 最后通过交互式变基移除第一个包含大文件的提交即可
内容的提问来源于stack exchange,提问作者KCB
相关产品推荐
相关产品推荐

