Files
dotfiles/.config/zsh/autoload/git/git-branch-rename
Julian Prein bb7ef3769d git: Add branch-rename
Small script to rename a branch locally and on a given remote.
2025-09-12 14:35:44 +02:00

27 lines
583 B
Bash
Executable File

#!/usr/bin/env zsh
# SPDX-License-Identifier: MIT
# Copyright (c) 2025 Julian Prein
#
# Rename a branch locally and on a given remote.
emulate -L zsh -o err_return -o no_unset
if (( # < 2 || # > 3 )); then
printf >&2 "Usage: %s OLD NEW [REMOTE]\n" "${0:t}"
return 1
fi
local old new remote
old="$1"
new="$2"
remote="${3:-origin}"
if ! git remote -v | awk '{ print $1 }' | uniq | grep -q "$remote"; then
printf >&2 "Remote '%s' does not exist\n" "$remote"
return 1
fi
git checkout-worktree "$old" <<EOF
git branch -m "$new" && git push -u && git push -d "$remote" "$old"
EOF