Support publishing to a branch
Fixes #5.
This allows passing --branch <branchname> to append the newly created commit to an existing branch.
To make this happen, I changed the code to use git workdir, to check out the branch in a second (temporary) directory without creating a new repo.
While at it I also made that push won’t break if the used tag has the same name as a branch, by explicitly pushing refs/tags/${tag} instead of just tag.
I hope I covered the failure cases; e.g. removing the worktree and tag and resetting the branch if publishing fails. It may be worth checking such scenarios.
Some error and success messages that are presented may deserve an update, I did not address this yet as possibly issue #6 (multiple tags), if incorporated too, may require changing those again. Likewise I did not yet provide a possibility to publish only to a branch without creating a tag.
Wow, nice job! I think I need some time to process the changes, especially since you changed all the code paths. :) Didn't know about git worktree.