首页 > 解决方案 > “git reset --hard”命令不会删除不必要的提交

问题描述

我正在关注 Udemy 教程,因此我从 GitHub 下载了一个包含 50-60 次提交的存储库。

现在我想跳转到某个提交,例如提交 16,并删除我不需要的提交(在本例中为 17-50)。我绝对确定,我不需要我想摆脱的提交。

因此我做了一个reset --hard certain_hash将头部放在正确的提交上,但是其他不需要的提交(17-50)仍然存在。

在此处输入图像描述

我怎样才能摆脱不必要的提交?

标签: gitgithub

解决方案


如果这些提交 17-50没有被任何本地或远程跟踪分支引用,那么它们将消失。

在您的情况下,它们可能仍被以下引用origin/master

  • git remote remove origin有点极端,特别是如果您需要稍后推回
  • 只需强制推送(重置后)就足以(git push --force)更新本地跟踪分支和远程分支。

输入git branch -a --contain 96e6c82检查输出是否为空。

您至少需要这样做git push --force才能master仅包含您想要的提交。


推荐阅读