Git rebase fails, 'Your local changes to the following files would be overwritten by merge'. No local changes?

23,299

Solution 1

This is the same answer as another one of my questions re git troubles.

I'm on a mac, and this obscure config change seemed to fix all my woes regarding unstaged changes when there were none.

git config --global core.trustctime false

I think it's to do with differences between windows file times, linux file times and mac file times. who knows, feel free to comment if you do.

Update: This blog post explains what's going on, sort of.

Solution 2

With regards to Joshua Hogendorn's answer: it seems to me that leaving Xcode open while working on the repository with git leads to these problems. It even led to a situation where git committed something that I thought to have stashed (and still had afterwards) but Xcode just wrote to the filesystem right during the rebase.

So: Close your Xcode project before you work on the repo with git if you want to be safe, and then you probably don't need the core.trustctime false setting.

Share:
23,299

Related videos on Youtube

jhogendorn
Author by

jhogendorn

Updated on July 08, 2022

Comments

  • jhogendorn
    jhogendorn almost 2 years

    Here is my transcript from trying to merge my bugfix branch onto my master branch in preparation to push it upstream. There have been some upstream changes pulled into master since the bugfix branch was created, and it now refuses to rebase.

    The files it throws errors on are not diffed when opened. no files have been added, removed or renamed. Nothing is ignored and nothing is untracked or staged or unstaged. I'm completely stumped as to why the rebase is failing.

    I'm on OS X 10.6.6 and git 1.7.4

    .-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
    `--> git rebase bug586-test master-test
    First, rewinding head to replay your work on top of it...
    Applying: - comiitting code related to api permissions
    Using index info to reconstruct a base tree...
    Falling back to patching base and 3-way merge...
    error: Your local changes to the following files would be overwritten by merge:
        inc/data.inc
        templates/apipermissions_tpl.inc
        templates/currencies_tpl.inc
    Please, commit your changes or stash them before you can merge.
    Aborting
    Failed to merge in the changes.
    Patch failed at 0001 - comiitting code related to api permissions
    
    When you have resolved this problem run "git rebase --continue".
    If you would prefer to skip this patch, instead run "git rebase --skip".
    To restore the original branch and stop rebasing run "git rebase --abort".
    
    
    
    .-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
    `--> git status
    # Not currently on any branch.
    nothing to commit (working directory clean)
    
    
    
    .-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
    `--> git rebase --abort
    HEAD is now at 5efccf1 - comiitting code related to api permissions
    
    
    
    .-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
    `--> git log -n10 --oneline
    5efccf1 - comiitting code related to api permissions
    a8a5ee4 Style changes for IE
    cfca618 Style changes for IE
    8a69de6 Style changes for IE
    8946585 - comiitting code related to api permissions - fixed an html error in the currencies template
    5fba0a9 Merges the 1.11b branch bugfixes and changes into trunk
    ef57049 Andrew Commiting on Blakes behalf on changes he made to transfers; Also an Indue GW balance fix; debitcarupload fix for LSN
    69e4313 Fixed an issue with Support From email
    9058fb6 Sets the svn property svn:eol-style to LF, to enforce unix style line endings
    240839e Fixes up a lot of the whitespace issues.
    
    
    
    .-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
    `--> git checkout bug586-test 
    Switched to branch 'bug586-test'
    
    
    
    .-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
    `--> git log -n10 --oneline  
    b7b1f8a Resolves #586, Postback on deposit
    5fba0a9 Merges the 1.11b branch bugfixes and changes into trunk
    ef57049 Andrew Commiting on Blakes behalf on changes he made to transfers; Also an Indue GW balance fix; debitcarupload fix for LSN
    69e4313 Fixed an issue with Support From email
    9058fb6 Sets the svn property svn:eol-style to LF, to enforce unix style line endings
    240839e Fixes up a lot of the whitespace issues.
    cf27b6f - bug that came up with transferring. The transfer page had a hidden field called to, which was taking precedence over cards and usercard which would throw the system out a bit
    7c21a81 Fixes #603, new add transaction form, journalled.
    01e6292 Removes a pile of resource forks
    880c5bc - bug that came up with transferring. The transfer page had a hidden field called to, which was taking precedence over cards and usercard which would throw the system out a bit
    
    
    
    .-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
    `--> git rebase master-test bug586-test
    First, rewinding head to replay your work on top of it...
    Applying: Resolves #586, Postback on deposit
    Using index info to reconstruct a base tree...
    <stdin>:52: trailing whitespace.
                    'name' => 'Invoice Transfer Out', 
    <stdin>:175: trailing whitespace.
    
    warning: 2 lines add whitespace errors.
    Falling back to patching base and 3-way merge...
    error: Your local changes to the following files would be overwritten by merge:
        templates/deposit_tpl.inc
    Please, commit your changes or stash them before you can merge.
    Aborting
    Failed to merge in the changes.
    Patch failed at 0001 Resolves #586, Postback on deposit
    
    When you have resolved this problem run "git rebase --continue".
    If you would prefer to skip this patch, instead run "git rebase --skip".
    To restore the original branch and stop rebasing run "git rebase --abort".
    
    
    
    .-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
    `--> git rebase --abort
    HEAD is now at b7b1f8a Resolves #586, Postback on deposit
    
    • Kzqai
      Kzqai over 13 years
      You should post the contents of a git status, the contents of your gitignore, and ls in the directories in question seperately, so it's more clearly readable. That might help some, at least.
    • Cascabel
      Cascabel over 13 years
      Do you have any crlf settings or anything? Rebase shouldn't be creating a dirty work tree like that. And the git status that might be helpful is when the rebase fails. It refuses to run with a dirty tree; we know it's clean before you start. It's the status when there are local modifications that is causing a problem.
    • Laurent Pireyn
      Laurent Pireyn over 13 years
      Are you sure about the order of the parameters to git rebase? The first ref is the one to rebase to, while the optional second ref is the one that will be checked out first. Maybe you should swap them.
  • Christopher Pickslay
    Christopher Pickslay over 12 years
    Thanks! I never would have figured this out.
  • karlbecker_com
    karlbecker_com over 11 years
    Same thing here Chris - I'd definitely like to know what caused this to work for me.
  • Mikko Rantalainen
    Mikko Rantalainen about 11 years
    Perhaps you had some kind of "automatically save file every N minutes" setting active in your IDE? Do not do that.
  • Uncommon
    Uncommon about 11 years
    Unfortunately this did not work for me. Quitting Xcode - even though the files Git complained about were not in the project - did help.
  • Jonathan Hartley
    Jonathan Hartley almost 11 years
    I'm on SuSE using git-svn to commit to a SuSE svn server in a different time zone. Whatever the explaination, this fixed the problem for me too.
  • schmunk
    schmunk over 10 years
    Here's an explanation of what might be the cause git-tower.com/blog/make-git-rebase-safe-on-osx/#! Looks like it has to do with a revisiond background process.
  • jhogendorn
    jhogendorn over 10 years
    I did see that actually. I'm inclined to disagree somewhat, mainly because this question was posted pre lion's release date of July 20, 2011. I even say in the question that I'm on OSX 10.6. Which indicates that the issue existed prior to the version functionality of osx.
  • Nicolas Lauquin
    Nicolas Lauquin over 10 years
    I tried… and worked for me ! Close xcode before doing a rebase. Waste some many time for nothing. Thanks !
  • Bill Hoag
    Bill Hoag over 10 years
    I had the same errors as above although I'm using Aptana Studio 3. When I exited Aptana, the rebase worked. I had turned off Aptana's git integration a few days ago. Either it didn't really turn off or I should have restarted Aptana.
  • gitaarik
    gitaarik about 10 years
    A git revert of a range of commits also failed with the same kind of error for a colleague of mine, and this fixed it.
  • philix
    philix about 10 years
    @jhogendom you're a hero!
  • Liglo App
    Liglo App over 9 years
    Using NetBeans and had same problem too. This one solved it. Thanks!
  • Mohammad Dehghan
    Mohammad Dehghan about 9 years
    Faced the same problem when the project was open in Visual Studio 2013. Closing the project solved the issue.
  • GuiGS
    GuiGS almost 8 years
    Same problem using Rubymine
  • Gavin Hope
    Gavin Hope almost 8 years
    I had a similar problem, during rebase, on Windows... running the rebase from a bash shell, but had Visual Studio open and SourceTree open... I close both of those other apps and the rebase progressed without issue. Thx.
  • Marc Stober
    Marc Stober over 7 years
    More generally this seems like a problem with files being locked during a rebase. For me it was webpack --watch running.
  • Drew Noakes
    Drew Noakes over 7 years
    I hit this on Windows today. Doing git rebase --abort and then re-trying the rebase worked for me.
  • Jon Abrams
    Jon Abrams over 7 years
    This fixed worked for me but git rebase --continue refused to continue because no files were changed. I fixed that by doing: touch empty_file && git add empty_file. Then after the rebase I had to do git rm empty_file
  • Jason Goemaat
    Jason Goemaat over 6 years
    @Jon Abrams I just did git rebase --abort, changed the setting, then re-ran git rebase
  • ACVM
    ACVM over 6 years
    @JonAbrams I'd be careful with that, because when I did that, I actually lost the changes from one of my commits (which then cascaded and caused the rest of the rebase to have errors). The command above did work for me after aborting.
  • markgarg
    markgarg over 3 years
    It happened to me when I traveled between time zones in between my commits. I was the only one working on the branch and it was on the same laptop too. Thanks, this fixed it!