threads / discuss / 56880

Feature request: Ability to edit existing tag's message

Subject: Feature request: Ability to edit existing tag's message

## tl;dr

2 messages between Nov 12, 2021 and Nov 12, 2021.

replies: 1people: 2as markdown or json

Eyal Rozenberg· Nov 12, 2021, 15:05 UTC · lore

At the moment, one has to go through some hoops to edit a tag's message; see discussions here:

https://stackoverflow.com/q/7813194/1593077
It would be nice if:
    git tag --edit my_tag_name

would bring up the editor with the existing text of my_tag_name's message, for amendment. And, perhaps,

    git tag --edit my_tag_name -m "new message"

would overwrite the existing message. I've suggested `--edit` since the switch already exists, but if you like a different bikeshed then it could be --amend like git commit --amend.

Just my 2 cents and have a nice day, Eyal Rozenberg

PS - I'm not on this mailing list, so if you want to reply, please use my actual address.

Ævar Arnfjörð Bjarmason· Nov 12, 2021, 16:08 UTC · re: Eyal Rozenberg · lore

Re: Feature request: Ability to edit existing tag's message

On Fri, Nov 12 2021, Eyal Rozenberg wrote:
Show 25 quoted lines
> At the moment, one has to go through some hoops to edit a tag's message;
> see discussions here:
>
> https://stackoverflow.com/q/7813194/1593077
>
> It would be nice if:
>
>    git tag --edit my_tag_name
>
> would bring up the editor with the existing text of my_tag_name's
> message, for amendment. And, perhaps,
>
>    git tag --edit my_tag_name -m "new message"
>
> would overwrite the existing message. I've suggested `--edit` since the
> switch already exists, but if you like a different bikeshed then it
> could be --amend like git commit --amend.
>
>
> Just my 2 cents and have a nice day,
> Eyal Rozenberg
>
>
> PS - I'm not on this mailing list, so if you want to reply, please use
> my actual address.
Yes, these should be an easier way to do that.

In the meantime it seems a lot of those suggestions on Stack Overflow are way too complex, since they're struggling to maintain all the tag metadata as-is, an easier way is:

    git cat-file tag <tag-name> | sed s/foo/bar/g | git mktag

Which will create and print out the OID of a tag object, if nothing is changed the OID is the same, then just:

    git tag <tag-name> <that-oid>
Where you'll need a --force if the <tag-name> is the same.

It's not as "safe" as e.g. "git commit --amend", as you can edit the raw headers, but for people who want this that may be a feature most of the time.

It will also preserve the inline PGP signature, which if you make any edits to the tag won't verify anymore.

It also looks like a lot of those SO answers pre-date my not-so-recent changes to "fetch" where we'll by default error if any existing tags would be clobbered.

So you can do this, but there's a reason for why it's not implemented. I.e. you really don't want to edit existing tags in the general case.

But I can see how it's useful if you've not pushed it out, or if changing it is OK in your environment even if it was pushed out.

← back to recent threads