在SourceForge上强制Git推送

在SourceForge上强制Git推送,git,version-control,git-push,sourceforge,Git,Version Control,Git Push,Sourceforge,我正在尝试回滚SourceForge上的Git存储库。我尝试了以下方法: git reset --hard 9ac2e31ca4a155d4c36780b4329626045a7f40ed HEAD ist jetzt bei 9ac2e31 Fix warnings git push -f origin master Total 0 (delta 0), reused 0 (delta 0) remote: error: denying non-fast-forward refs/head

我正在尝试回滚SourceForge上的Git存储库。我尝试了以下方法:

git reset --hard 9ac2e31ca4a155d4c36780b4329626045a7f40ed
HEAD ist jetzt bei 9ac2e31 Fix warnings


git push -f origin master
Total 0 (delta 0), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To ssh://user@git.code.sf.net/p/project/code
 ! [remote rejected] master -> master (non-fast-forward)
error: Fehler beim Versenden einiger Referenzen nach 'ssh://user@git.code.sf.net/p/project/code'

如何覆盖远程SourceForge Git存储库的
master
分支?

由于
denyNonFastforwards
是服务器端配置,您需要以某种方式访问SourceForge端的repo

作为您的应用程序,这是通过完成的,但这假设您可以使用ssh打开一个安全的shell

在shell中运行“
sf帮助--scm
”将显示您的回购路径。
只需将
denyNonFastforwards=true
调整为
false
一段时间,进行推送,然后将其设置回
true
(出于安全考虑)

但是,类似于“
ssh:connect to host shell.sourceforge.net port 22:Connection seeded
”的消息可能意味着:

  • 它可能会在客户端被阻止(检查是否可以通过ssh连接到其他服务,如GitHub,即使它不是交互式会话)
  • 或者它可能是SourceForge端中断的结果(但他们的)

仔细检查。

以下是连接到Sourceforge帐户、更改
配置文件和启用
非快进更新的详细说明

您可以使用以下命令从计算机更改标准Sourceforge项目的
denyNonFastForwards

  • 通过命令
    SSH-t使用交互式Shell连接到您的SSH帐户ron190ron190@shell.sourceforge.net创建
    。请注意,URL与项目的URL不同:
$ssh-tron190ron190@shell.sourceforge.net创造
无法建立主机“shell.sourceforge.net(ip)”的真实性。
ECDSA密钥指纹为SHA256:密钥
是否确实要继续连接(是/否)?对
警告:已将“shell.sourceforge.net,ip”(ECDSA)永久添加到已知主机列表中。
密码:
为“用户”请求一个新shell并等待它启动。
排队。。。创建。。。启动。。。
这是一个为用户创建的交互式shell
使用“timeleft”命令查看关机前的剩余时间。
使用“关机”命令在时间限制之前销毁外壳。
有关路径信息和登录帮助,请键入“sf帮助”。
  • 使用
    sf帮助--scm
    pwd
    查找文件
    config
    ,它应该位于文件夹
    /home/git/p/myproject/code.git/

  • 阅读
    config
    文件以检查
    denyNonFastforwards
    状态,它确实设置为true:

[user@shell-22003代码.git]$cat配置
[核心]
repositoryformatversion=0
filemode=true
裸=真
sharedrepository=2
[接收]
denyNonFastforwards=true
  • 启动vi修改文件,将
    true
    更改为
    false
[user@shell-22003 code.git]$vi配置
[核心]
repositoryformatversion=0
filemode=true
裸=真
sharedrepository=2
[接收]
denyNonFastforwards=false
~
~
1,1全部
  • 键入
    :w
    保存更改,键入
    :q
    退出vi

拒绝非快进的错误应该不再出现。

如果这是一次性的(或不经常发生),您只需使用git push-d sf branch
和push删除远程分支。

您是否有可能在配置文件中将属性denynonfastforts设置为false。我不知道。我发现了一个关于这个问题的问题。你可以删除远程分支,然后将master作为一个全新的branhc推送。@ThorbjørnRavnAndersen我已经尝试删除远程主分支,但这不起作用。可能是@LimitedAtoniment的重复。这是可能的,我不知道sourceforge如何处理它(现在或4年前)