9

作成者名と電子メール アドレスのエラーを修正するために、ツリーを git リポジトリに書き直しました。今、固定ツリーを Source Forge のレポにプッシュしようとしています。CharlesB は、Source Forge サーバー上の構成ファイルを更新する方法を教えてくれました。私の設定ファイルは次のようになります。

[codeguru@shell-24003 bbct]$ cat config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = true
        sharedrepository = 2
[receive]
        denyNonFastforwards = false

プッシュを強制しようとすると、次のエラーが表示されます。

$ git push -f
Password:
Counting objects: 464, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (148/148), done.
Writing objects: 100% (452/452), 470.65 KiB, done.
Total 452 (delta 268), reused 417 (delta 247)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To ssh://codeguru@git.code.sf.net/p/bbct/code
 ! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'ssh://codeguru@git.code.sf.net/p/bbct/code'

何が起きてる?さらに重要なことに、どうすれば修正できますか?

アップデート:

公立キャンパスのコンピューターで実行git push -fすると、上記と同じエラー メッセージが表示されます。

別の更新:

SF リポジトリを一時フォルダーに複製し、この一時リポジトリのマスター ブランチを、間違った作成者と電子メールでの最初のコミットの直前のコミットにリセットし、実行しましたgit push -f。元のリポジトリとまったく同じエラー メッセージが表示されます。

$ git push -f
Password:
Total 0 (delta 0), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To ssh://codeguru@git.code.sf.net/p/bbct/code
 ! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'ssh://codeguru@git.code.sf.net/p/bbct/code'

SF は、私がここで非早送りコミットを行うことを本当に望んでいないと思います :-(

4

2 に答える 2

17

場合によっては、次のような単純な問題になる可能性があります。

[receive]
        denyNonFastForwards = false

' 'の大文字 ' F' に注意してくださいForwards
したがって、Source Forge サーバー上の構成ファイルを修正すると、git push -fどのワークステーションからでも成功するはずです。

于 2012-09-17T07:02:41.873 に答える
3

これは実際には SourceForge の問題であり、おそらくユーザー エラーでもありました。SF シェルでは、最初にプロジェクトの構成ファイルを/home/scm_gitディレクトリの下で編集しました。/home/gitSF にチケットを送信した後、正しいディレクトリが代わりにあることがわかりました。プロジェクトの正しいサブディレクトリにある構成ファイルを編集した後、プッシュを強制し、マスター ブランチを正常に更新しました。

于 2012-09-21T17:46:29.707 に答える