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/git-authors: bin/git-authors.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
|
||||
|
||||
# systemd
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue