Hi, I have some suggestions to improve performance of 'git pull --rebase'. 1. If I have no new local commits "git pull --rebase" will do a fast forward merge. But if I have changes to local files I have to stash them also if they are not affected by the new commits from origin. I think in that case git should not reject changes to every local file and has to use the fast forward merge validation instead. 2. If I have no changes to local files and I use 'git pull --rebase --autostash' no stashing should take place. The improved workflow would look like as follows. git pull rebase = true or preserve | | | | | check if local branch has no new commits | no | yes ---------------------+--------------------- | | | | | | rebase validation ff merge validation for for local changes conflicting local changes | | no changes| changes no conflicts | has conflicts --------+--------- ------------+---------- | | | | | | | | | | | | do rebase use autostash? do ff merge use autostash? | | | | | no | yes | no | yes | --------+--------- | ---------+--------- | | | | | | | | | | | | | conflict error stash changes | conflict error stash changes | | | | | | | | | | | | | | do rebase | | do ff merge | | | | | | | | | | | | | | pop stash | | pop stash | | | | | | | | | | | | success abort success success abort success Regarda, Mattias