git删除服务器上的提交

时间:2013-05-29 08:41:35

标签: git git-reset

我在git管理的项目中犯了一些错误:

在这里阅读一些指南和一些帖子我做了这个命令:

git reset --hard a77ec5f

其中commint a77ec5f是最后一次'好'提交

之后,文件就在我的本地副本中,但如果我执行了git status

$ git status
# On branch dev
# Your branch is behind 'origin/dev' by 4 commits, and can be fast-forwarded.
#
nothing to commit (working directory clean)

现在,我如何告诉服务器我要删除的4个提交? 感谢

3 个答案:

答案 0 :(得分:3)

如果您的存储库已被其他人同步,那么您不应该推送任何历史记录更改,除非您确定没有人撤消了更改。

要重写历史记录(危险),请在本地执行空提交(git commit --allow-empty)以使HEAD与远程HEAD分开,然后push --force重写服务器的历史记录。

答案 1 :(得分:1)

您不应删除服务器上的提交,但应将其还原

答案 2 :(得分:1)

您可以还原不需要的提交。

git revert commit

这将创建另一个恢复不需要的更改的提交。在还原不需要的提交后,您应该推送到原点。

您也可以查找--no-commit参数以进行还原。