Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add new commit to the existing Git tag

I have created a Git tag as v1.1 using

git tag -a v1.1 -m 'my version 1.1' 

and I pushed that tag. Later, I made some changes related to v1.1. Now when I push new changes and check the git tag using git describe it is showing me v1.1-g2dcc97.

How can I add my new commit to the existing tag?

like image 932
PVH Avatar asked Jan 30 '14 14:01

PVH


People also ask

Does git tag also commit?

The -m specifies a tagging message, which is stored with the tag. If you don't specify a message for an annotated tag, Git launches your editor so you can type it in. That shows the tagger information, the date the commit was tagged, and the annotation message before showing the commit information.


2 Answers

You can't put a new commit into an existing tag without breaking an important Git guideline: Never(*) modify commits that you have published.

Tags in Git aren't meant to be mutable. Once you push a tag out there, leave it alone.

You can, however, add some changes on top of v1.1 and release something like v1.1.1 or v1.2. One way of doing that would be

# Create a new branch from tag v1.1 git checkout -b newbranch v1.1  # Do some work and commit it  # Create a new tag from your work git tag -a -m "Tag version 1.1.1, a bugfix release" v1.1.1 

(*) Unless you have a really super special reason for doing so, and only if you completely understand the implications, and even then, don't make a habit of it.

like image 85
Chris Avatar answered Sep 24 '22 19:09

Chris


If you absolutely need to "move" the tag instead of creating a new one, You can do this:

NB: As @Chris said, make sure you have a good reason for not wanting to create a new tag because the best practice is to create a new one

1. Checkout the tag (a Detached HEAD)

git checkout tag/v1.1

2. Create and Checkout a branch off that tag (i.e. Branching off the tag)

git checkout -b my-tagged-branch

*** do work and commit changes ***

3. Push to the remote branch.

git push  -u origin my-tagged-branch 

If needed merge branch into other branches that need the change (in case of a bug fix for example)

4. While still on my-tagged-branch, Delete the tag

git tag -d v1.1

5. Create the tag again: This will "move" the tag to point to your latest commit on that branch

git tag v1.1

6. Delete the tag on remote

git push origin :v1.1

7. Create the tag on remote

git push origin v1.1

like image 33
papigee Avatar answered Sep 25 '22 19:09

papigee