Hilco Wijbenga <hilco.wijbenga@xxxxxxxxx> writes: > Does it really make sense for that first example to fail, though? "git > tag hello v1.9.5" is an idempotent operation, isn't it? The second > attempt is a no-op? > > If "git tag ..." simply does nothing if the tag already exists (as > requested) then that would make the OP's issue go away: only the 2nd > example would fail. I do not think I personally mind that direction; when I responded, I thought that in the example, 'hello' is initially pointing at something entirely different (perhaps v2.0.0), though. But it may be tricky to do, though. It is easy for lightweight tags, but you'd have to fail an attempt to add an annotated and/or signed tag without -f anyway, so you have to be prepared to answer "why does this behave differently with and without -a/-s?".