【问题标题】:How to revert to previous commit and remove later commits in Git如何在 Git 中恢复到以前的提交并删除以后的提交
【发布时间】:2016-07-27 23:42:45
【问题描述】:

想要恢复到之前的提交

$ git reset --hard commit_sha 

似乎使用 HEAD 成功恢复的现在是上一次提交,但在 PyCharm 日志中,我仍然在分支历史记录中看到后来的提交。

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

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

因为origin/master 7e260f7 还在BitBucket 中?

$ git reset --hard 7e260f7

【问题讨论】:

  • 您是否尝试过重启 PyCharm 或删除其内部缓存?有可能只是在内部存储它们。
  • 嗨,Dan,但提交仍在 Bitbucket 中显示?

标签: git


【解决方案1】:

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

resetrevert之间也有区别,值得了解。

当您使用git reset 时,您将分支指针移动到您指定的提交。你基本上是在历史中倒退。文档:https://git-scm.com/docs/git-reset

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

我希望这会有所帮助。

【讨论】:

  • 谢谢@anierzad,刚刚做了$ git push origin master --force。那么 PyCharm 或 WebStorm 中的等价物是什么,谢谢
  • 很高兴为您提供帮助 :)。恐怕我对这些没有任何经验。如果这些程序仍然显示提交,您应该只需要执行相当于 fetch 的操作。
  • 嗨@anierzrad,现在我面临 git checkout 先前提交的类似问题,然后我提交并推送了新的更改,但 HEAD 现在领先于主原点/主控,所以这样做我执行与上述类似的命令来同步?因为Bitbucket也看不到?
  • 我不确定我是否完全理解您的要求。它与这个问题或发生的其他事情有关吗?
  • 类似,但现在 HEAD 领先于 origin/master
猜你喜欢
  • 2011-06-27
  • 2012-08-15
  • 2011-03-10
  • 2011-05-06
相关资源
最近更新 更多