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 shell 中,我最初在/home/scm_git目录下编辑了我的项目的配置文件。向顺丰提交ticket后,发现原来是正确的目录/home/git。在为我的项目编辑正确子目录中的配置文件后,我强制推送并成功更新了主分支。

于 2012-09-21T17:46:29.707 回答