2013-08-30 55 views
2

我正在嘗試將一些更改推送到我的github存儲庫,但由於git認爲存儲庫中存在大文件,因此推送失敗。GitHub中的幻影文件提交

remote: Error code: 38865a38ccad9b1d9f394c35344906e6 
remote: warning: Error GH413: Large files detected. 
remote: warning: See http://git.io/iEPt8g for more information. 
remote: error: File videos/Lecture2.mp4 is 134.01 MB; this exceeds GitHub's file size limit of 100 MB 

但是文件視頻/ Lecture2.mp4不在存儲庫中。沒有視頻目錄。

有關如何刪除此文件以便推送其他更改的任何想法?

+0

你如何確定它不在存儲庫中? –

+0

文件是否存在於您的歷史記錄中的任何位置?它不必存在於Git想要推送它的工作副本的當前狀態中,它只需在您的歷史記錄中存在一次,那麼它仍將存在於您的回購中,即使您將它從最近一次提交中的代碼的當前狀態。 – 2013-08-30 05:39:25

+0

如果你使用'git log --oneline --name-status --patch',然後在'less'分頁器中輸入'/Lecture2.mp4',你會看到文件出現在你的提交歷史中嗎? – 2013-08-30 05:40:54

回答

1

如果該文件在git repo的歷史記錄中的任何時間點被提交,但之後被刪除,您將不會在當前狀態下看到它,但仍會被推送。

給BFG嘗試從歷史記錄中刪除該大文件。

BFG Repo-Cleaner:「刪除像git-filter-branch這樣的大或麻煩的blob,但速度更快。」

+1

可能更容易做'git filter-branch --tree-filter'rm filename'HEAD' – nishantjr

+0

@nishantjr比'bfg --delete-files filename my-repo.git'更簡單嗎? 'bfg'比'git filter-branch'快得多。 – VonC

+0

可以確認bfg更好。雖然我更喜歡簡單的拷貝和粘貼@ nishantjr的命令來修復我的大文件現在被刪除但是stil-choking-'$ git push'的問題,但它不起作用。下載,安裝bfg並從我的git shell中使用java似乎很多工作,但它的確有竅門。 –