On Sun, Aug 29, 2021 at 5:07 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Elijah Newren <newren@xxxxxxxxx> writes: > > >> Why does Git have to delete and then create again the directory when it > >> is already there? > >> > >> > >> This isn't a big issue, but it is very odd that git deletes the working > >> directory. > > > > It was deleted by the rebase operation, because rebase (currently) > > works by first checking out the target commit onto which it will apply > > all your local patches. That target didn't have the directory; the > > directory was added by your local patches. So checking out that > > commit necessarily deletes the directory. Then rebase applies each of > > your local patches, one by one, updating the working directory as it > > applies them. Since your local patches create that directory, it gets > > re-created by this process. > > This is one of the reasons why "rebase" (especially "rebase -i") may > want to insist starting at the top-level of the working tree, like > "git bisect" does. Because running the command from a subdirectory > works most of the time until it doesn't, people tend to complain why > they should go up to the top-level before they can run the command. > > And this is why---it causes end-user confusion. Makes sense to me; I'll submit a patch.