def re_tag(name, remote=False, commit=None):
    """Add a local tag with that name at that commit

    If no commit is given, at current commit on cuurent branch
    If remote is true, also push the tag to origin

    If tag already exists, delete it, then re-make it
    """
    if remote:
        tags = run('ls-remote --tags', quiet=True).splitlines()
        if name in tags:
            hide(name)
    if is_tag(name):
        run('tag --delete %s' % name)
    return tag(name, remote, commit)
Add a local tag with that name at that commit

    If no commit is given, at current commit on cuurent branch
    If remote is true, also push the tag to origin

    If tag already exists, delete it, then re-make it