Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git won't let me rebase (untracked files would be overwritten). What should I do?

Tags:

git

rebase

commit

I just want to edit/amend the text of an older Git commit.

I ran the following:

$ git rebase -i a41a407d6f53328d49267e6a8429b9492f023629
error: The following untracked working tree files would be overwritten by checkout:
    admin/roles/allowassign.php
    admin/roles/allowoverride.php
    admin/roles/assign.html
    admin/roles/assign.php
    admin/roles/manage.html
    admin/roles/manage.php
    admin/roles/managetabs.php
    admin/roles/override.html
    admin/roles/override.php    
Aborting
could not detach HEAD       

However, git status does not list any untracked files:

$ git status
On branch dev
nothing to commit, working directory clean

Note, that admin/roles is a submodule of the repository:

$ git submodule
 77c5addc1b210256da9171e3b286ffa5addd2478 admin/roles (heads/dev)

And listing ignored files:

$ git status --ignored
On branch duf-moodle-dev
Ignored files:
  (use "git add -f <file>..." to include in what will be committed)

        blocks/moodleblock.class.php.bak
        filter/tex/mimetex.exe
        lib/smarty/COPYING.lib

nothing to commit, working directory clean

Saving GIT stash has no result:

$ git stash save --include-untracked
No local changes to save

I was reading, that integrating into Explorer Shell, can have such result. Currently Git Extensions, GIT GUI, and SmartGIT are integrated into context shell. This may cause problem?

My proposal is, that the problem origin is the use of submodules. I keep some changes as submodules.

Any ideas why the rebase interactive gives be the error and how to fix it?

Also, there would be even fine to have a solution to edit/amend an older commit description without using rebase...

like image 675
klor Avatar asked Mar 23 '15 15:03

klor


1 Answers

I had a similar problem, but in my case it was caused by changing letter case in file names while using Windows (which seems to get git confused about it). I solved by using a virtualised linux (could be a docker container), checking out that branch and doing the rebase from there.

like image 127
Victor Basso Avatar answered Oct 25 '22 09:10

Victor Basso