Reputation: 6951
I'm trying to rollback a Git repository on SourceForge. I tried the following:
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://[email protected]/p/project/code
! [remote rejected] master -> master (non-fast-forward)
error: Fehler beim Versenden einiger Referenzen nach 'ssh://[email protected]/p/project/code'
How can I override the master
branch for a remote SourceForge Git repository?
Upvotes: 8
Views: 1355
Reputation: 4376
If it's a one-time thing (or not frequent), you can simply delete the remote branch with git push -d sf branch
and the push.
Upvotes: 0
Reputation: 1102
Here are detailed instructions to connect to your Sourceforge account and change the config
file and enable non-fast-forward
updates.
You can change denyNonFastForwards
of a standard Sourceforge project from your computer with the following commands :
ssh -t [email protected] create
. Notice that the URL is different from the one of your project: $ ssh -t [email protected] create
The authenticity of host 'shell.sourceforge.net (ip)' can't be established.
ECDSA key fingerprint is SHA256:key
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'shell.sourceforge.net,ip' (ECDSA) to the list of known hosts.
Password:
Requesting a new shell for "user" and waiting for it to start.
queued... creating... starting...
This is an interactive shell created for user user,users
Use the "timeleft" command to see how much time remains before shutdown.
Use the "shutdown" command to destroy the shell before the time limit.
For path information and login help, type "sf-help".
Find the file config
using sf-help --scm
or pwd
, it should be located in folder /home/git/p/myproject/code.git/
.
Read the config
file to check denyNonFastforwards
status, it is indeed set to true:
[user@shell-22003 code.git]$ cat config
[core]
repositoryformatversion = 0
filemode = true
bare = true
sharedrepository = 2
[receive]
denyNonFastforwards = true
true
to false
:[user@shell-22003 code.git]$ vi config
[core]
repositoryformatversion = 0
filemode = true
bare = true
sharedrepository = 2
[receive]
denyNonFastforwards = false
~
~
1,1 All
:w
to save the change and :q
to exit vi.The error denying non-fast-forward
should not appear anymore.
Upvotes: 6
Reputation: 1329222
Since denyNonFastforwards
is a server-side config, you need to access to your repo on the SourceForge side somehow.
As your ticket mentions, this is done with an interactive shell service, but that supposes you can use ssh to open a secure shell.
Running "
sf-help --scm
" in the shell will show you your repo paths.
Just tweak thedenyNonFastforwards = true
tofalse
for a bit, do your push, and then set it back totrue
(for safety).
However, a message like "ssh: connect to host shell.sourceforge.net port 22: Connection refused
" could mean that:
Double-check the SourceForge SSH documentation.
Upvotes: 5