重新访问:将远程重置为特定提交

时间:2018-12-12 00:25:43

标签: git sourceforge

我看过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$

其他公式在本质上也是相同的。

1 个答案:

答案 0 :(得分:1)

在来自名为phd的用户的评论之后,我有一个解决方案。评论说

“ SourceForge可能会保护存储库免于强制推送。SF将裸存储区存储在文件系统中,因此您可以使用ssh登录并编辑.git / config或在存储库中运行git config receive.denyNonFastforwards false。请参见stackoverflow.com/q/ 12450703/7976758。”

因此,大约十年来,我在sourceforge上第一次使用SSH,发现这是完全正确的。特别是

ssh -t USER@shell.sourceforge.net create

(使用我的用户名而不是USER)使我开始工作,并因此进行了编辑:

vim /home/git/p/PROJECT/git.git/config

(替换项目名称)

我必须更改为以下权限:

denyNonFastforwards = false

然后所有这些有问题的东西突然开始按文档记录工作。现在,我将其改回来,因为它应该介于稀有和唯一之间。