为什么我不能将新标签推送到服务器

时间:2013-11-08 19:44:15

标签: git ssh gitolite

我刚刚标记了一个版本,我正在尝试将标记推送到服务器但是我收到以下错误

$ git push --tags 
Counting objects: 1, done.
Writing objects: 100% (1/1), 190 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: FATAL: W refs/tags/v3.1.01 project xxsmith DENIED by refs/.*
remote: error: hook declined to update refs/tags/v3.1.01
To ssh://git@server/project
 ! [remote rejected] v3.1.01 -> v3.1.01 (hook declined)
error: failed to push some refs to 'ssh://git@server/project'

这是为什么?我拥有该帐户的完全权利。

我正在使用gitolite ..它可以是以下设置

repo project
    RW+ master  = @releasers    # allow @releasers access to release branch
    - master   = @developers    # deny @developers access to release branch
    RW develop = @developers    # allow @developers access to development branch
    RW+ develop = @releasers    # allow @developers access to development branch
    - = @all                    # deny all other permissions

2 个答案:

答案 0 :(得分:5)

Gitolite问题

older StackOverflow question解决同一问题。总结:

  • 您需要RW+权限才能更改/删除(更改gitolite configuration)。基于您的gitolite配置,您可能需要:

    RW+ refs/tags = @releasers # Allow @releasers to push tags

    之前阻止此操作的是否认所有其他权限。

    - = @all # deny all other permissions

  • 更新Gitolite可能有所帮助(确保更新密钥和回收)

服务器端挂钩

从这看起来,server side hook看起来可能会阻止你推送标签。

在远程端,查看git文件夹内的hooks文件夹。预接收或更新挂钩可能是问题挂钩。

使用力

另一方面,您也可以尝试强制推送标记git push -f --tags

答案 1 :(得分:1)

我修好了..我必须在conf

中添加以下内容
 RW refs/tags = @releasers