误提交大文件到Git?保留代码、只删文件,一篇教程搞定

误提交大文件到Git?保留代码、只删文件,一篇教程搞定

💡 原文中文,约1900字,阅读约需5分钟。
📝

内容提要

在开发中,误提交大文件是常见问题。即使添加了.gitignore,已追踪的文件仍需处理。可通过交互式变基(git rebase -i)删除大文件,步骤包括找到错误提交、修改为edit、移除大文件、修正提交并继续变基。推送时需使用强推,建议在提交前检查文件列表以避免误提交。

🎯

关键要点

  • 在开发中,误提交大文件是常见问题。

  • 即使添加了.gitignore,已追踪的文件仍需处理。

  • 需要通过交互式变基(git rebase -i)删除大文件。

  • 步骤包括找到错误提交、修改为edit、移除大文件、修正提交并继续变基。

  • 推送时需使用强推,建议在提交前检查文件列表以避免误提交。

  • gitignore只对未被Git追踪的文件生效。

  • 适用场景包括不小心commit了大文件且需要保留正常业务代码。

  • 使用git rebase -i可以编辑历史提交,保留代码不丢失。

  • 关键命令包括git rm --cached和git commit --amend --no-edit。

  • 如果已经推送到远程,需要使用安全强推(git push --force-with-lease)。

  • 提交前应检查文件列表,避免误提交大文件。

延伸问答

如何处理误提交的大文件而保留代码?

可以通过交互式变基(git rebase -i)找到错误提交,修改为edit,移除大文件,然后修正提交并继续变基。

.gitignore对已追踪文件有效吗?

.gitignore只对未被Git追踪的文件有效,已追踪的文件需要手动处理。

如果已经推送到远程,如何处理误提交的大文件?

需要使用安全强推(git push --force-with-lease)来推送修改后的历史。

在提交前如何避免误提交大文件?

可以在提交前使用git status检查文件列表,并提前将大型文件写入.gitignore。

交互式变基的主要步骤是什么?

主要步骤包括找到错误的commit,执行git rebase -i,修改为edit,移除大文件,修正提交并继续变基。

如何从Git中删除大文件但保留本地文件?

使用命令git rm --cached 你的大文件路径来从Git仓库删除大文件,同时保留本地文件。

➡️

继续阅读