2016-07-27 69 views
0

本想恢复到以前由如何恢复到以前的承诺和删除后犯的Git

$ git reset --hard commit_sha 

这似乎与HEAD成功地恢复,现在是在提交以前的承诺,但内PyCharm登录我仍然看到稍后再提交分支历史记录。

所以我的问题是如何删除以后提交?即图像,我想删除提交7e260f7

我是否右键单击7e260f7或名为TEMP CHANGE GROUP的提交并选择“将当前分支重置为此处”?

因为origin/master7e260f7仍然在BitBucket?

$ git reset --hard 7e260f7 

enter image description here

enter image description here

+2

可能重复的[垃圾收集提交在混帐](http://stackoverflow.com/questions/14991916/garbage-collect-commits-in-git) –

+0

您是否尝试重新启动PyCharm或删除其内部缓存?这可能只是在内部存储它们。 –

+0

嗨丹,但提交仍在Bitbucket中显示? – niceseb

回答

0

远程origin你的分支master仍然指向提交你想删除。您需要使用git push origin master --force强制更新远程分支。

resetrevert这是值得了解的。

当您使用git reset时,您将分支指针移至您指定的提交。你基本上是回退历史。 Docs:https://git-scm.com/docs/git-reset

当您使用git revert时,将反转指定的提交所做的更改,并创建另一个包含这些反转更改的提交。在这种情况下,您将使用相反的更改集创建额外的提交。文档:https://git-scm.com/docs/git-revert

我希望这有助于。

+0

感谢@anierzad,只是做了$ git push origin master --force。那么PyCharm或WebStorm的等价物是什么,谢谢 – niceseb

+0

很高兴帮助:)。恐怕我对这些没有任何经验。如果这些程序仍显示提交,您只需执行相当于提取操作的操作即可。 – anierzad

+0

嗨@anierzrad,现在我正面临类似的git checkout之前的提交问题,并且随后我承诺并推出了一项新更改,但是HEAD现在位于主起始/主控制器之前,因此我要执行上述类似命令同步?因为Bitbucket也没有看到它? – niceseb