2

我在 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 个提交要删除?谢谢

4

3 回答 3

3

如果您的存储库被其他人同步,那么您不应该推送任何历史更改,除非您确定没有人拉出错误的更改。

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

于 2013-05-29T08:44:44.710 回答
1

您不应该删除服务器上的提交,而是还原它们

于 2013-05-29T08:42:58.467 回答
1

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

git revert commit

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

您也可以查找--no-commit用于还原的参数。

于 2013-05-29T09:00:55.923 回答