Add git-rewrite-commits
Some checks failed
Build / Lint Code Base (push) Has been cancelled
CI / build (push) Has been cancelled

This commit is contained in:
Benedikt Heine 2025-07-25 11:25:24 +02:00 committed by Felix Buehler
parent ad24ebe4a2
commit 808243babc
2 changed files with 33 additions and 0 deletions

32
bin/git-rewrite-commits.sh Executable file
View file

@ -0,0 +1,32 @@
#!/usr/bin/env bash
# Automatically start a rebase for all commits between HEAD and the main
# branch without integrating new commits from the main branch
#
# Technically it's a git rebase without rebasing any commits.
# 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
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
exit 1
fi
MERGE_BASE="$(git merge-base "${MAIN_BRANCH}" HEAD)"
# Show the next command
set -x
git rebase --interactive "${MERGE_BASE}"

View file

@ -77,6 +77,7 @@
~/.local/bin/host-is-on: bin/host-is-on.sh ~/.local/bin/host-is-on: bin/host-is-on.sh
~/.local/bin/git-authors: bin/git-authors.sh ~/.local/bin/git-authors: bin/git-authors.sh
~/.local/bin/git-ard: bin/git-ard.sh ~/.local/bin/git-ard: bin/git-ard.sh
~/.local/bin/git-rewrite-commits: bin/git-rewrite-commits.sh
~/.local/bin/clean: bin/clean.sh ~/.local/bin/clean: bin/clean.sh
# systemd # systemd