2

我已经在这个 repo 上工作了很长时间,突然间我遇到了一个问题。我意识到我有一个 350 兆的 .csv 文件。我推送到 github 的正常程序是:

git add .
git commit -m "some message"
git push

当我意识到它开始编写一个大文件时,我看到它是那个大的 .csv “shifts.c​​sv”。所以我删除了它然后我去了

git rm shifts.csv

我重新完成了添加、提交和推送的过程,但在删除它后,它仍在尝试将这个大文件写入推送。谷歌搜索我找不到的解决方案。

4

1 回答 1

2

Git 可能仍在尝试将文件推送到您的远程仓库,因为虽然

git rm shifts.csv
git commit

从源代码的当前和未来状态中删除文件,它仍然存在于存储库历史中,在早期的提交中,因此当你推送时,Git 必须将你的所有历史推送到你的远程,包括提交文件,因为它仍然是你早期历史的一部分。

您必须以某种方式从您的回购历史记录中完全删除该文件,就好像它在任何时候都不存在一样。如果创建文件的提交在您的历史记录中不太早,您可以使用交互式 rebase 将其删除,或者如果您不介意丢失工作,请进行硬重置。

但是,如果提交被深深埋藏在您的历史记录中,那么您唯一可行的选择可能是使用git filter-branch.

于 2013-08-16T06:38:14.873 回答