Re: Aborting 'rebase main feat' removes unversioned files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <fedor.birjukov@xxxxxxxxx> 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 <peff@xxxxxxxx> wrote:
> >
> > On Sat, Sep 04, 2021 at 01:57:11PM +0700, Bagas Sanjaya wrote:
> >
> > > On 04/09/21 03.33, Fedor Biryukov wrote:
> > > > 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
> > > >
> > >
> > > Did 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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux