mirror of
https://github.com/Stunkymonkey/dotfiles.git
synced 2025-09-13 22:12:04 +02:00
Add git-rewrite-commits
This commit is contained in:
parent
ad24ebe4a2
commit
808243babc
2 changed files with 33 additions and 0 deletions
32
bin/git-rewrite-commits.sh
Executable file
32
bin/git-rewrite-commits.sh
Executable 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}"
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue