Moving tags on Github UI
I am looking at on option of using naming conventions(e.g. QA, PROD, SERVER1) and hooks around GIT tags to let users deploy configuration files to specific environments and server pools. This would require that users "move" their tags whenever a new set of files need to be deployed to a given environment. Unfortunately, while moving tags seems to be supported via CLI, Github UI doesn't allow that.
Is there any way to accomplish this via the Github UI? Alternately, any suggested alternative approaches to accomplish the same, would be great too. I could use branch conventions and branch-push hook triggers instead of tag conventions, but I feel this reduces the user's flexibility, and might also get confusing if there are too many branches.
Thanks in advance!
Shared, annotated Git tags like the ones you see on GitHub aren't meant to be moved:
But if you have pushed things out (or others could just read your repository directly), then others will have already seen the old tag. In that case you can do one of two things:
The sane thing. Just admit you screwed up, and use a different name. Others have already seen one tag-name, and if you keep the same name, you may be in the situation that two people both have "version X", but they actually have different "X"'s. So just call it "X.1" and be done with it.
The insane thing. You really want to call the new version "X" too, even though others have already seen the old one. So just use git tag -f again, as if you hadn’t already published the old one.
You can move them, but it can easily lead to confusion and I strongly recommend against it. Note that the official documentation goes so far as to call this option "insane". Some tools won't work as expected when tags are modified.
On the other hand, branches are designed to move. Create a branch for each environment you want to represent and keep them updated, ideally with fast-forward merges so you never have to force anything.
I don't believe that the GitHub web UI can do this itself. I think you're going to have to use some other tool (probably whatever client you are already using locally).