i haven't read the entire thread [sorry], but with that in mind here's how i'm solving this:
i have various branches where i keep my not-yet-merged work. i also have a script that creates/overwrites a branch (called 'attila', starting at the tag 'attila-baseline') and cherry picks everything into it. i sometimes `git tag -f` the 'attila-baseline' tag to pick a new baseline. then i update my intro commit hash wherever i want to pull my rebased/cherry-picked changes (this is a several machines setup, and yes, it's burdensome). when a cherry pick fails, then i cancel the script, rebase the problematic branch on 'attila-baseline', and restart the script pasted below. -- • attila lendvai • PGP: 963F 5D5F 45C7 DFCD 0A39 -- “Is there an idea more radical in the history of the human race than turning your children over to total strangers whom you know nothing about, and having those strangers work on your child's mind, out of your sight, for a period of twelve years? […] Back in Colonial days in America, if you proposed that kind of idea, they'd burn you at the stake, you mad person! It's a mad idea!” — John Taylor Gatto (1935–2018), Teacher of the Year, both in New York City and State, multiple times #!/usr/bin/env bash BRANCHES="kludges ui-warnings print-branch-name" BRANCHES+=" shepherd-guix-side" set -e initial_branch=$(git branch --show-current) git rebase attila-baseline attila-initial-commit git checkout attila git reset --hard attila-baseline git pull . attila-initial-commit for branch in ${BRANCHES}; do echo "*** Processing branch ${branch}" #git rebase attila-baseline $branch git cherry-pick attila-baseline..$branch done #git checkout $initial_branch git -c pager.log=false log --pretty=oneline attila-initial-commit~1..attila-initial-commit