我刚刚标记了一个版本,我正在尝试将标记推送到服务器但是我收到以下错误
$ 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
答案 0 :(得分:5)
有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