Looks like a bug in git rebase main feat. To reproduce: git init git commit -m 'init' --allow-empty git checkout -b feat echo 123 > readme.txt git add readme.txt git commit -m 'txt=123' git checkout main echo 012 > readme.txt git rebase main feat git rebase --abort Expected result: readme.txt contains 012 Actual result: readme.txt contains 123 According to the docs, git rebase main feat is a shorthand for git checkout feat followed by git rebase main. I have checked that doing checkout and rebase separately instead of using the shorthand does not have the same issue. Cheers! Fedor