Search code examples
gitgit-mergegit-pull

git pull: keeps telling me to stash local changes before pulling


When I am trying to pull my git repository with "git pull", it keeps telling me that I have local changes although I have not touched any of the mentioned files. Can someone explain this behavior and knows a solution?

git status:

    # On branch master
# Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
#   (use "git pull" to update your local branch)
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   src/component/Provider.java
#   modified:   src/data/Cascading.java
#
no changes added to commit (use "git add" and/or "git commit -a")

Solved the problem. It was actually my fault not noticing that the remote repository has been reset to a previous version. Nevertheless if you experience this, the solution explained by Max Woolf will work!


Solution

  • It sounds like your local branch does not have all of the changes on origin.

    Firstly, stash your changes

    git stash
    

    Then, pull in the changes from origin.

    git fetch origin && git rebase origin/(branch name)
    

    Next, add the stash back in to your working directory:

    git stash pop