【发布时间】:2018-12-12 00:25:42
【问题描述】:
我查看了Resetting remote to a certain commit,但它似乎不再有效。
我有一个与远程主机同步的存储库。其他人看不到遥控器,所以我觉得这样做很好:我想从遥控器中删除最后一个提交(并重新应用修改后的提交)。我尝试在那里看到的公式并得到错误。示例:
kevin@camelot-x:~/Desktop/Projects/qubic/qubist$ git push --force origin 105bd79119e069b9a1678d37c47a7e66db5b858a:master
Password:
Total 0 (delta 0), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To ssh://kogorman@git.code.sf.net/p/qubic/git
! [remote rejected] 105bd79119e069b9a1678d37c47a7e66db5b858a -> master (non-fast-forward)
error: failed to push some refs to 'ssh://kogorman@git.code.sf.net/p/qubic/git'
kevin@camelot-x:~/Desktop/Projects/qubic/qubist$
其他公式基本上给出了相同的抱怨。
【问题讨论】:
-
我已经很长时间没有使用 SourceForge(并且不是用于 Git 项目),但这听起来像是一个受保护的分支功能——即远程 repo 已配置为不允许您重写历史记录。如果它属于您,您应该有权在网络界面的某处暂时关闭它。
-
@Ry 我是这个项目的唯一管理员。我查看了 Web 界面,找不到任何东西来调整 git 的工作方式。所以我还是卡住了。
-
SourceForge 可能会保护存储库免受强制推送。 SF 将裸存储库存储在文件系统中,因此您可以使用ssh 登录并编辑
.git/config或在存储库中运行git config receive.denyNonFastforwards false。见stackoverflow.com/q/12450703/7976758。 -
@Nermanja 我对您引用的答案不满意。例如:“git push origin +HEAD^”被拒绝,因为“fatal: remote part of refspec is not a valid name in +HEAD^”
标签: git sourceforge