2010-09-11 145 views
18

我犯了一個錯誤....我不知道如何解決它。撤消github上的git push

我解釋了這個問題。

我正在處理我的項目,並且我做了第一次提交。 在這個承諾已經加入了2個大的無用文件... 所以我做了

git rm file 

話又說回來COMMITED我不希望這些文件。 而我很愚蠢,因爲我推到github hehehe :)。

我想你已經發現了問題...

如何從我的本地和GitHub的倉庫明確刪除這些文件(特別是GitHub的...)

我發現了一些幫助的互聯網,但我不想破壞我所有的存儲庫。

感謝

回答

29

如果沒有其他人拉動你,你應該讓你的本地分支恢復到你想要的狀態(可能是通過重置到以前的位置,或者通過做一個交互式底座去除不需要的提交),然後再次推動與-f(強制)選項github上:

git push -f <remote-name> <branch-name> 

如果其他人有拉,通常的建議也適用:閱讀混帳底墊手冊頁的recovering from upstream rebase部分看到你之前在做給別人什麼你做你的強迫更新。

3

如果你想刪除(而不是還原,刪除)最後用新的文件提交,我認爲你應該做的:

git reset --soft "HEAD^" 

無論如何,因爲你已經它推到github上,你可以」不用重新創建git repo就可以將其刪除。這是它的工作原理,你可以恢復每個提交,例如提交你刪除這兩個大文件的地方。由於它是新的回購協議,並且您正在討論初始提交,因此重新創建回購站點是我的最佳選擇。

+4

「如果不重新創建git repo,你不能刪除它」呃,是的,你可以。如果他們拉了,它可能會讓其他人不高興,但你可以做到。 – Cascabel 2010-09-12 01:19:17

+2

我不知道你可以從遠程回購中刪除它,謝謝隊友。 – 2010-09-12 11:14:00

+0

只要'git reset HEAD ^'是好的;混合重置也會重置暫存區域,但(與「--hard」相反)會使工作目錄完好無損。從那裏,'git add -p'往往是下一步。 – Kos 2013-02-13 10:13:17