How do you push a Git tag to a branch using a refspec?

后端 未结 4 1544
迷失自我
迷失自我 2020-12-07 06:49

I want to force push, for example, my tag 1.0.0 to my remote master branch.

I\'m now doing the following:

git push producti         


        
相关标签:
4条回答
  • 2020-12-07 07:26

    It is probably failing because 1.0.0 is an annotated tag. Perhaps you saw the following error message:

    error: Trying to write non-commit object to branch refs/heads/master

    Annotated tags have their own distinct type of object that points to the tagged commit object. Branches can not usefully point to tag objects, only commit objects. You need to “peel” the annotated tag back to commit object and push that instead.

    git push production +1.0.0^{commit}:master
    git push production +1.0.0~0:master          # shorthand
    

    There is another syntax that would also work in this case, but it means something slightly different if the tag object points to something other than a commit (or a tag object that points to (a tag object that points to a …) a commit).

    git push production +1.0.0^{}:master
    

    These tag peeling syntaxes are described in git-rev-parse(1) under Specifying Revisions.

    0 讨论(0)
  • 2020-12-07 07:32

    I create the tag like this and then I push it to GitHub:

    git tag -a v1.1 -m "Version 1.1 is waiting for review"
    git push --tags
    
    Counting objects: 1, done.
    Writing objects: 100% (1/1), 180 bytes, done.
    Total 1 (delta 0), reused 0 (delta 0)
    To git@github.com:neoneye/triangle_draw.git
     * [new tag]         v1.1 -> v1.1
    
    0 讨论(0)
  • 2020-12-07 07:41
    git push --tags production
    
    0 讨论(0)
  • 2020-12-07 07:51

    For pushing a single tag: git push <reponame> <tagname>

    For instance, git push production 1.0.0. Tags are not bound to branches, they are bound to commits.

    When you want to have the tag's content in the master branch, do that locally on your machine. I would assume that you continued developing in your local master branch. Then just a git push origin master should suffice.

    0 讨论(0)
提交回复
热议问题