git尝试在已删除的推送上写入文件

时间:2013-08-15 18:32:25

标签: git github terminal

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

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

当我意识到它开始编写一个大文件时,我看到它看起来那么大.csv“shifting.csv”。所以我删除了它,然后我去了

git rm shifts.csv

我经历了添加,提交和推送的过程,并且在删除它之后仍然试图在推送时写入这个大文件。谷歌搜索解决方案,我找不到一个。

1 个答案:

答案 0 :(得分:1)

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

git rm shifts.csv
git commit

从源代码的当前和未来状态中删除该文件, 它仍存在于存储库历史记录 ,在之前的提交中,因此当您推送时,Git必须将 所有历史记录 推送到您的遥控器,包括其中包含文件的提交,因为它仍然是您之前历史记录的一部分。

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

但是,如果提交被隐藏在您的历史记录中,那么您唯一可行的选项可能是使用git filter-branch从历史记录中删除该文件。