【问题标题】:Remove remote commit in git删除 git 中的远程提交
【发布时间】:2013-03-26 07:53:53
【问题描述】:

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

如何在本地和远程存储库中删除提交。 这是一个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'

【问题讨论】:

  • 我试过git push -f git push --force。它对我不起作用。

标签: git


【解决方案1】:

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

  1. 联系服务器管理员,解释您的情况,并要求他们(暂时)撤销 no-fast-forward-push 政策,例如 git config receive.denyNonFastForwards。 (您仍然需要 -f 标志来推送。)

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

【讨论】:

  • 我在另一个硬盘上有 git 远程存储库,所以我可以配置它。我尝试使用命令:git config --system receive.denyNonFastForwards false,但没有帮助。
  • 当我使用git config receive.denyNonFastForwards false 时,它终于可以工作了。非常感谢!
  • @bLAZ 我已经更新了答案以包含配置调用。
猜你喜欢
  • 1970-01-01
  • 2017-01-19
  • 2016-12-05
  • 2022-07-03
  • 2020-07-30
  • 2015-11-05
  • 2020-07-16
  • 2020-09-08
  • 2023-01-12
相关资源
最近更新 更多