如何从本地和远程删除错误的提交

时间:2018-08-28 10:11:07

标签: git github bitbucket

➜  amfrost_crm git:(master) gst
On branch master
Your branch is behind 'origin/master' by 5 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)

nothing to commit, working directory clean

这五个提交很糟糕,我想将它们从本地和远程永久删除,并将HEAD重新设置为可以正常工作的提交。

1 个答案:

答案 0 :(得分:0)

您想要做的是丢弃先前已经完成并已经推送到遥控器的部分工作。这意味着修改存储库历史记录,并且出于至少两个原因,这几乎总是一个坏主意:

  1. 您正在放弃已经完成的工作,并且可能无法恢复。即使错了,您仍然可以跟踪它,并继续进行新的提交即可丢弃差异。
  2. 如果您之外的其他人正在使用存储库,则他将无法再将其推送到存储库,因为远程服务器及其本地用户的历史记录将不匹配。他们将不得不再次克隆存储库,并与diff工具合并,手动添加其工作。

如果您确实要更改远程存储库的历史记录,并将其与本地存储库匹配,则只需执行强制推送即可:

git push --force

无论如何,正如其他人已经在评论中指出的那样,这可能是一个非常糟糕的主意。