diff --git a/bin/git-rewrite-commits.sh b/bin/git-rewrite-commits.sh index 217aa60..4ccf73c 100755 --- a/bin/git-rewrite-commits.sh +++ b/bin/git-rewrite-commits.sh @@ -8,23 +8,15 @@ # Enforce being in a git repository git rev-parse --is-inside-work-tree >/dev/null || exit $? -# We actually should check out the head branch via `git remote show ${REMOTE}`, -# but this requires active connection and active 2FA verification. Tedious to -# have multiple calls for this -if git rev-parse --verify main &>/dev/null; then - MAIN_BRANCH=main -else - MAIN_BRANCH=master -fi +HEAD_REMOT="$(git rev-parse --abbrev-ref origin/HEAD | cut -d/ -f2)" +HEAD_LOCAL="$(git rev-parse --abbrev-ref HEAD)" -CURRENT_BRANCH="$(git rev-parse --abbrev-ref HEAD)" - -if [ "${CURRENT_BRANCH}" = "${MAIN_BRANCH}" ]; then - echo "Cannot rebase commits from '${CURRENT_BRANCH}' (HEAD) onto '${MAIN_BRANCH}'" >&2 +if [ "${HEAD_LOCAL}" = "${HEAD_REMOT}" ]; then + echo "Cannot rebase commits from '${HEAD_LOCAL}' (HEAD) onto '${HEAD_REMOT}'" >&2 exit 1 fi -MERGE_BASE="$(git merge-base "${MAIN_BRANCH}" HEAD)" +MERGE_BASE="$(git merge-base "${HEAD_REMOT}" HEAD)" # Show the next command set -x