From: Ben Date: Mon, 19 Aug 2019 15:33:15 GMT Subject: Re: [PATCH 0/2] git rebase: Make sure upstream branch is left alone. Message-ID: <81b244b9-8b26-e638-56ae-827bbc522dc2@wijen.net> In-Reply-To: <0bef598c-6c89-c699-5290-ee2003db5979@gmail.com> Hi Phillip, The expected behavior: (as per v2.21.0:/git-legacy-rebase.sh:679) AUTOSTASH=$(git stash create autostash) git reset --hard git checkout master git rebase upstream git stash apply $AUTOSTASH The actual behavior: AUTOSTASH=$(git stash create autostash) git reset --hard master git checkout master git rebase upstream git stash apply $AUTOSTASH So, the problem with the actual behavior is the move of the currently active branch with 'git reset --hard master' Best regards, Ben... On 19-08-2019 11:26, Phillip Wood wrote: > Hi Ben > > On 18/08/2019 10:53, Ben Wijen wrote: >> I found an issue with git rebase --autostash with an dirty worktree/index. >> It seems the currently active branch is moved, which is not correct. > > I'm not sure I understand what you mean by "the currently active branch is moved". 'git rebase --autostash ' should checkout (presumably stashing any unstaged and uncommitted changes first) and then do rebase - what's it doing instead? > > Best Wishes > > Phillip > >> The following patches contain both a test and a fix. >> >> Ben Wijen (2): >>    t3420: never change upstream branch >>    rebase.c: make sure current branch isn't moved when autostashing >> >>   builtin/rebase.c            | 18 ++++++------------ >>   t/t3420-rebase-autostash.sh | 13 +++++++++---- >>   2 files changed, 15 insertions(+), 16 deletions(-) >> >