首页 > 解决方案 > 大型提交文件阻止进一步的 git 提交

问题描述

我试图从我的本地机器向我的 git 存储库添加一个大数据文件。推送时,我意识到文件有大小限制,无法推送到 git 存储库。我尝试添加一个较小的文件,但之前提交的大文件阻止了任何推送。我确实通过网站添加了文件并合并了一些协作者的更改。这是树:

* 3cab70a (HEAD, master) FIX: fixing gpu synch bug.
*   1a1af92 Merge branch 'master' of github.com:blade/Project_B
|\  
| *   c6401fd (origin/master) Merge pull request #1 from blade/shen_debug
| |\  
| | * 623e412 (origin/shen_debug) [Debug-Only] Use CUDA events to measure forward delay
| |/  
| * 41e861d Add files via upload
* |   f2ebd6b Merge branch 'master' of github.com:blade/Project_B
|\ \  
| |/  
| * d58cab0 Update job.sh
* | d016878 adding data folder
* | 5485106 Revert "ENH: adding data"
* | f1cc34d ENH: adding data
|/  
* 390b757 Adding working code
  1. 如何从提交中删除该大文件,以便我可以推动进一步的更改?
  2. 我该如何解释这棵树?

标签: git

解决方案


您基本上需要重写主分支的历史记录以排除该数据。仅仅是该提交的存在就阻止了您推动您的更改。由于它实际上还没有在原点中,所以没有必要进行还原。

有几种方法可以做到这一点,最简单的方法是将(交互式)重新定位到 origin/master 以跳过错误的提交。那应该清除错误的提交并同时更新您的分支。然后,您可以推送您的更改。


推荐阅读