在SourceForge上强制Git推送
我正在尝试回滚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
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年前)