How do I tag all commits with a new tag?
I know how to tag a single commit but how can I do it on bulk, and the push the tags up to GitHub?
You cannot tag all commits with one tag. A tag can point to only one commit, so even if you run through all your history and tag them you'll face to problems:
-f option to tag, because once you place a tag, a tag with the same name can only be forcedBut, as I mentioned, it is possible. You can iterate through output of git log and place tags (with different names), or you can use libraries (JGit, for example). After tags are placed, do git push github --tags.
P.S. I think you are trying to do something bad. Tell us why do you need it?
git branch v1or such) and continue on master, if not you can tag your last v1 or first v2 commit to find it again, aside from that one typically tags as part of a release process