commits from the todo list, and put the rebased commits into a single, linear branch. With --rebase-merges, the rebase will instead try to preserve the branching structure within the commits that are to be rebased, by recreating the merge commits. rebase -r Ref: https://git-scm.com/docs/git-rebase 01 02 03 04 05 06 07 08 09 10