git在服务器上删除提交

git在服务器上删除提交,git,git-reset,Git,Git Reset,我在git管理的项目中犯了一些错误: 在阅读一些指南和帖子时,我发出了以下命令: git reset --hard a77ec5f 其中,提交人a77ec5f是最后一次“良好”提交 在此之后,文件就在我的本地副本中,但是如果我执行git状态: $ git status # On branch dev # Your branch is behind 'origin/dev' by 4 commits, and can be fast-forwarded. # nothing to commit

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

在阅读一些指南和帖子时,我发出了以下命令:

git reset --hard a77ec5f
其中,提交人a77ec5f是最后一次“良好”提交

在此之后,文件就在我的本地副本中,但是如果我执行
git状态

$ 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个提交将被删除?
谢谢

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

如果您的存储库由其他人同步,那么您不应该推送任何历史记录更改,除非您确定还没有人推送坏的更改


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

您可以还原不需要的提交

git revert commit
这将创建另一个提交,以还原不需要的更改。还原不需要的提交后,应推送到源


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

谢谢,在我现在的位置,我如何“跳转”这4次提交?@marian theisen:你能告诉我怎么做吗?更改在服务器中。。。如何进行虚拟提交?添加了一个简短的描述。在大多数情况下,重写历史不是一个好的选择。确保没有其他解决方案。