Re: Aborting 'rebase main feat' removes unversioned files
From: Fedor Biryukov <hidden>
Date: 2021-09-04 09:58:18
Just tested it on my MacBook. To my surprise, the file got deleted by 'git rebase main feat': 550$ git --version git version 2.33.0 551$ git init -b main Initialized empty Git repository in /Users/ted/workspace/git-abort-bug/test/.git/ 552$ git commit -m 'init' --allow-empty [main (root-commit) ede7bdf] init 553$ git checkout -b feat Switched to a new branch 'feat' 554$ echo 123 > readme.txt 555$ git add readme.txt 556$ git commit -m 'txt=123' [feat 29ac3de] txt=123 1 file changed, 1 insertion(+) create mode 100644 readme.txt 557$ git checkout main Switched to branch 'main' 558$ echo 012 > readme.txt 559$ git rebase main feat Current branch feat is up to date. 560$ git rebase --abort fatal: No rebase in progress? On Sat, Sep 4, 2021 at 11:51 AM Fedor Biryukov [off-list ref] wrote:
There is no way this could be the intended behavior, but the good news is that I cannot reproduce it... Looks like it occurs only in one git version (2.31.0.windows.1, IIRC). And it does not occur in the latest git version: git version 2.33.0.windows.2. -Fedor On Sat, Sep 4, 2021 at 11:48 AM Jeff King [off-list ref] wrote:quoted
On Sat, Sep 04, 2021 at 01:57:11PM +0700, Bagas Sanjaya wrote:quoted
On 04/09/21 03.33, Fedor Biryukov wrote:quoted
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 --abortDid you forget committing?I don't think so. The point is that "readme.txt" is not a tracked file on the main branch, and thus Git should consider it precious. I don't think the "rebase --abort" is the problem here, though. It's the command before: git rebase main feat The "feat" branch is already ahead of "main" (which has no new commits), and so it just says: Current branch feat is up to date. and leaves us on the "feat" branch. But in doing so, it overwrites the precious untracked content in the working tree. The "git rebase --abort" command then does nothing, because there's no rebase in progress. -Peff