2010-09-11 114 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