2

我找不到我的问题的有效解决方案:

如何在本地和远程存储库中删除提交。这是一种解决方案。但是当我尝试这个时,我可以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'
4

1 回答 1

3

您的远程存储库可能具有不允许在服务器端进行非快进推送的设置。你有两个选择:

  1. 联系服务器管理员,解释您的情况,并要求他们(暂时)取消 no-fast-forward-push 策略,例如git config receive.denyNonFastForwards. (你仍然需要-f旗帜来推动。)

  2. 使用git revert代替git reset,并推送结果提交。提交及其逆向都是可见的,但有时这是无法避免的。除非原始提交包含敏感数据,否则这应该是一件大事——git 提交总是被还原。如果原始提交确实包含敏感数据,请参阅选项 1。

于 2013-04-04T09:55:22.240 回答