52

I am trying to pull changes from remote branch but getting an error which doesn't make sense

when I do

git pull 

I get back

error: Your local changes to the following files would be overwritten by merge: file/name/path some/more/filenamepath Please, commit your changes or stash them before you can merge. Aborting 

Problem is I have no changes that need to be committed When I do git status

# On branch master # Your branch and 'origin/master' have diverged, # and have 2 and 7 different commits each, respectively. # nothing to commit (working directory clean) there are no working changes 

I've tried git reset --hard HEAD but that didn't help

any ideas?

Files are on the NFS file system, maybe that has something to do with. This is on OSX

Thanks


UPDATE: This issue has to do something with NFS, because when I went to the original source and did git pull from there everything worked fine, which fixed it for this instance, but still not sure exactly why it causes issues with NFS.

6
  • 1
    Have you tried leaving out HEAD in your git reset --hard? Give that a try first. Commented Aug 31, 2014 at 23:36
  • @DylanCorriveau HEAD is actually the default. Commented Sep 1, 2014 at 7:23
  • Can you clone the repo onto your system's hard disk and do your work there? Then you could bypass the NFS issue entirely.... Commented Sep 2, 2014 at 23:46
  • 1
    I'm guessing it has to do with line endings: CRLF vs LF. I'm using NFS on a NTFS filesystem and this issue popped up. Commented Oct 27, 2016 at 0:05
  • Related post - How do I ignore an error on 'git pull' about my local changes would be overwritten by merge? Commented May 9, 2019 at 8:29

5 Answers 5

53
  1. Delete the problematic files.
  2. Run git reset --hard.

That should fix it.

Sign up to request clarification or add additional context in comments.

2 Comments

Thanks! Ran into this issue today and this fixed the problem. Totally weird!
what happened to the file I delete, I need it
32

I had this same issue, and the fetch/rebase answer didn't work for me. Here's how I solved it:

I deleted the file that was causing the issue, checked it out, and then pulled successfully.

  1. rm file/name/path/some/more/filenamepath
  2. git checkout file/name/path/some/more/filenamepath
  3. git pull

2 Comments

why u remove file ?? if u just checkout from file it will allow u to pull
Didn't work for me, was getting error: pathspec '.file/name/file.ext' did not match any file(s) known to git but git pull --rebase worked
10

You should:

  • fetch (updating all remote tracking branches, like origin/master)
  • rebase your current branch on top of origin/master in order to replay your 2 commits on top of the 7 updated commits that you just fetched.

That would be:

git checkout master git fetch git rebase origin/master 

A shorter version of the above set of commands would be the following single command:

git pull --rebase 

2 Comments

That didn't work, I get Cannot rebase: You have unstaged changes. Please commit or stash them. But there is actually no unstaged changes
First of all, you need to merge the previous file, for example if README.md file needs to be merge you should execute the following command: -git merge README.md -git add README.md After the end of the process you should run -git commit -m "Add comment" -git push
2

Had the same issue. Solved it by re-cloning the repo. But now I think that the reason was the line endings in these files. I played with them before.

I suppose that line-ending difference doesn't mark files as changed, but may lead to this message. When you rm the files and recheckout them, line endings should set to "good state", and pull goes fine.

Comments

1

I had the same problem but with the .idea / vcs.xml and workspace.xml files. I deleted the 2 files then used the command: - git pull "remote" "brench"

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.