A while a go Philippe reported [1] that he was surprised 'git rebase --keep-base' removed commits that had been cherry-picked upstream even though to branch was not being rebased. I think it is also surprising if '--keep-base' changes the base of the branch without '--fork-point' being explicitly given on the command line. This series therefore changes the default behavior of '--keep-base' to imply '--reapply-cherry-picks' and '--no-fork-point' so that the base of the branch is unchanged and no commits are removed. The first 3 patches are preparatory cleanups and refactorings, the last 2 patches then implement the new defaults for --keep-base. [1] https://lore.kernel.org/git/0EA8C067-5805-40A7-857A-55C2633B8570@xxxxxxxxx/ Phillip Wood (5): t3416: set $EDITOR in subshell rebase: store orig_head as a commit rebase: factor out merge_base calculation rebase --keep-base: imply --reapply-cherry-picks rebase --keep-base: imply --no-fork-point Documentation/git-rebase.txt | 2 +- builtin/rebase.c | 116 +++++++++++++++++++------------ t/t3416-rebase-onto-threedots.sh | 52 +++++++++++--- t/t3431-rebase-fork-point.sh | 2 +- 4 files changed, 114 insertions(+), 58 deletions(-) base-commit: afa70145a25e81faa685dc0b465e52b45d2444bd Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1323%2Fphillipwood%2Fwip%2Frebase--keep-base-tweaks-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1323/phillipwood/wip/rebase--keep-base-tweaks-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/1323 -- gitgitgadget