Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot push tags in Git

I am unable to push the annotated tag in my git remote repository. All the access permission have been provided in gerrit. eg. [refs/*]

I am creating the tag using the below command

git tag -a v1.0 -m 'Base Version' 712d77e

When i try to push using the below commands

git push origin v1.0 

or

git push origin --tags

I get the following error.

Counting objects: 1, done.
Writing objects: 100% (1/1), 157 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done
To ssh://...
! [remote rejected] v1.0 -> v1.0 (prohibited by Gerrit)
error: failed to push some refs to 'ssh://...'

Please let me know how I should be able to push tags in repository.

Thanks....

like image 843
user265950 Avatar asked May 09 '13 15:05

user265950


People also ask

How do I push a git tag?

Sharing Tags You will have to explicitly push tags to a shared server after you have created them. This process is just like sharing remote branches — you can run git push origin <tagname> . If you have a lot of tags that you want to push up at once, you can also use the --tags option to the git push command.

Are tags pushed with git push?

Sharing tags is similar to pushing branches. By default, git push will not push tags. Tags have to be explicitly passed to git push .

How do I push a tag to a remote branch?

Push all git tags to remote And if you want to push all tags from your local to the remote then add "--tags" to the git command and it will push all tags to the remote.

How do I add a tag to a pushed commit?

Right click on the commit you want to tag, and click Create Tag at this version... Back to Log Message dialog, right click on that tag label, click Push "tag_name"...


2 Answers

This is a general error message that is returned by Gerrit if a push is not allowed, e.g. because the pushing user has no sufficient privileges.

In particular this error occurs:

  1. If you push a commit for code review to a branch for which you don’t have upload permissions (access right Push on refs/for/refs/heads/*)

  2. if you bypass code review without Push access right on refs/heads/*

  3. if you push an annotated tag without Push Annotated Tag access right on refs/tags/*

  4. if you push a signed tag without Push Signed Tag access right on refs/tags/*

  5. if you push a lightweight tag without the access right Create Reference for the reference name refs/tags/*

  6. if you push a tag with somebody else as tagger and you don’t have the Forge Committer access right for the reference name refs/tags/*

  7. if you push to a project that is in state Read Only

For new users it often happens that they accidentally try to bypass code review. The push then fails with the error message prohibited by Gerrit because the project didn’t allow to bypass code review. Bypassing the code review is done by pushing directly to refs/heads/* (e.g. refs/heads/master) instead of pushing to refs/for/* (e.g. refs/for/master).

copied from prohibited by Gerrit

More description: I have same problem with new installation of gerrit 2.7, searched and found this stackoverflow question, but my case was number 5 of this description(light weight tags), so i added Create Reference permission for refs/tags/*, and problem solved.

like image 124
ahmad molaie Avatar answered Oct 05 '22 14:10

ahmad molaie


Create annotated and Check gerrit. You must be in right group which is allowed to create annotated

If you create simple tags gerrit may reject that refs, but again it might depends on gerrit configuration.

create annotated tag:

git tag -a  -m "Some message" 

push all your tags:

git push --tags

check tags are created in remote:

git ls-remote --tags
like image 22
Hasan Shaik Avatar answered Oct 05 '22 12:10

Hasan Shaik