2015-07-26 5 views
7

Я пытаюсь откат репозитория Git на SourceForge. Я попытался следующие:Force Git push on SourceForge

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' 

Как я могу переопределить master ветвь для удаленного хранилища SourceForge Git?

+0

У вас есть свойство denyNonFastforwards, установленное как ложное в файле конфигурации, случайно? – Juan

+0

Может быть. Я не знаю. Я нашел [проблему на SourceForge] (https://sourceforge.net/p/forge/site-support/9558/) об этой проблеме. –

+0

Возможно, вы удалите удаленную ветку, а затем нажмите мастер как совершенно новый branhc. –

ответ

4

С denyNonFastforwards является конфигурацией на стороне сервера, вам нужно как-то получить доступ к вашему репо на стороне SourceForge.

Как ваш ticket mentions, это делается с помощью interactive shell service, но это означает, что вы можете использовать ssh для открытия защищенной оболочки.

Запуск «sf-help --scm» в оболочке покажет вам ваши пути репо.
Просто подкорректируйте denyNonFastforwards = true по номеру false, сделайте свое нажатие, а затем установите его на true (для обеспечения безопасности).

Однако, подобное сообщение «ssh: connect to host shell.sourceforge.net port 22: Connection refused» может означать, что:

  • Это может быть заблокирован на стороне клиента (проверьте, если вы можете SSH к другим услугам, как GitHub, даже если он выиграл» т быть сеанс интерактивная)
  • или это может быть результатом сбоя на стороне SourceForge (но их status page doesn't report any recent incident)

DOUBL e-check SourceForge SSH documentation.

2

Ниже приведены подробные инструкции по подключению к вашей учетной записи Sourceforge и изменению файла config и включению non-fast-forward обновлений.

Вы можете изменить denyNonFastForwards стандартного проекта Sourceforge с вашего компьютера с помощью следующих команд:

  • Подключение к вашей учетной записи SSH с помощью интерактивной консоли с помощью команды ssh -t [email protected] create. Обратите внимание, что URL отличается от одного вашего проекта:
$ 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". 
  • Найдите файл config с помощью sf-help --scm или pwd, он должен находиться в папке /home/git/p/myproject/code.git/.

  • Прочитайте файл config проверить denyNonFastforwards статус, он действительно установлен верно:

[[email protected] code.git]$ cat config 
    [core] 
     repositoryformatversion = 0 
     filemode = true 
     bare = true 
     sharedrepository = 2 
    [receive] 
     denyNonFastforwards = true 
  • Start VI изменить файл, изменить true к false:
[[email protected] code.git]$ vi config 
    [core] 
     repositoryformatversion = 0 
     filemode = true 
     bare = true 
     sharedrepository = 2 
    [receive] 
     denyNonFastforwards = false 
    ~ 
    ~ 
          1,1   All 
  • Тип :w для сохранения изменений и :q для выхода из vi.

Ошибка denying non-fast-forward больше не должна появляться.