在git中删除远程提交

时间:2013-04-04 09:48:12

标签: git

我无法找到解决问题的方法:

如何在本地和远程存储库中删除提交。 这是一个solution。但是当我尝试这个时,我可以在我的本地存储库中使用reset命令返回。但我无法推动它。错误消息说: remote: error: denying non-fast-forward refs/heads/master (you should pull first) 但在pull之后,我的主人再次指向我要删除的提交。

你能帮忙吗?

编辑 - 我的尝试:

$ git reset --hard HEAD^1
HEAD is now at 1c50f9c good commit

$ git push -f
Total 0 (delta 0), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To E:/reps/gf.git
 ! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'E:/reps/gf.git'

1 个答案:

答案 0 :(得分:3)

您的远程存储库可能有一个设置,禁止在服务器端进行非快进推送。您有两种选择:

  1. 与服务器管理员联系,解释您的情况,并要求他们(暂时)取消禁止快进推送政策,例如git config receive.denyNonFastForwards。 (您仍然需要-f标志才能推送。)

  2. 使用git revert代替git reset,然后推送生成的提交。提交及其反转都是可见的,但有时无法避免。除非原始提交包含敏感数据,否则这应该是一个大问题 - git提交会一直被还原。如果原始提交确实包含敏感数据,请参阅选项1.