TortoiseGit Manual


Rebase is quite complex, it alters the history of a repository. Please make sure you understood its principles before using it (For hints where to find more information about Git and merging see the section called “Reading Guide”).


Rebase dialog will be shown.

Rebasing commits takes places from the bottom of the list to the top (in ascending order of the ID column). For example, "squash" means that the commit gets squashed/combined with the previous commit(s) which are located below in the list (with a lower ID).


Instead of setting "pick", "skip", "edit", "squash" by using the context-menu, you can also use the following keys: space: shifts the state, s: skip, e: edit, p: pick, q: squash


There is a button that swaps branch and upstream. Assume you are currently working on master branch, and wish to rebase feature branch onto master. Instead of switching to feature in advance, select the commit of feature in log list, Context MenuRebase and click this swap button. TortoiseGit's rebase moves feature to master directly, then cherry-picks the commits. This approach touches fewer files and runs faster.


When preserving merge commits, re-ordering commits cannot be handled properly in all cases, see in known bugs of vanilla git rebase: the section called “git-rebase(1)”.