提交的更改无法推送到远程

时间:2015-10-30 05:36:24

标签: git github

我在本地计算机上创建了一个项目,并配置了一个我要推送的远程存储库。在尝试推送我的代码时,出现了错误,这是由于文件的大小非常大。因此,我使用rm -f <filename>命令从本地计算机中删除了该文件。然后我运行git rm <filename>并将更改添加到暂存区域,然后提交更改。

现在,当我尝试将更改推送到远程时,我收到的相同错误表明文件大小很大。我没有在我的工作区上的文件,而且,git status命令显示工作区是干净的。此外,git log命令显示已提交文件删除。能不能让我知道如何排除故障以及我哪里出错了。还有如何解决问题。

1 个答案:

答案 0 :(得分:1)

这个庞大的文件仍然在你的Git历史中。你需要删除它,不仅仅是从repo,而是从Git历史。 https://rtyley.github.io/bfg-repo-cleaner/会有所帮助(对于遇到同样问题的其他人,请参阅How to remove/delete a large file from commit history in Git repository?)。总结:

  1. 克隆您的仓库并处理克隆(如果出现问题,您可以备份原件):git clone --mirror /path/to/your/repo cloned-repo-to-trim
  2. 按照BFG usage instructions删除大文件(类似java -jar bfg.jar --strip-blobs-bigger-than 100M cloned-repo-to-trim)。
  3. 在克隆的repo中运行git gc --prune=now --aggressive以永久删除大型提交。
  4. 验证克隆的repo是否还有其应该拥有的所有其他提交,然后将其推送到您的遥控器。
  5. 希望这有帮助。