git pull:继续告诉我在拉动之前隐藏局部变化

时间:2013-12-13 14:33:18

标签: git git-merge git-pull

当我试图用“git pull”拉我的git存储库时,它一直告诉我我有本地更改,虽然我没有触及任何提到的文件。有人可以解释这种行为并知道解决方案吗?

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")

解决了问题。实际上我的错误是没有注意到远程存储库已重置为以前的版本。然而,如果您遇到这种情况,Max Woolf解释的解决方案将起作用!

2 个答案:

答案 0 :(得分:16)

听起来您的本地分支机构没有对origin进行所有更改。

首先,存储您的更改

git stash

然后,从origin拉入更改。

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

接下来,将存储重新添加到您的工作目录中:

git stash pop

答案 1 :(得分:1)

如果你在本地编辑的文件在遥控器上被更改了,那么Git根本无法提取更改。基本上,您有两种选择:

  • 暂存并提交您的更改,然后Git会尝试在拉动期间合并它(或寻求您的帮助);
  • 存储更改,将它们放在一边,以便您可以提取远程代码,然后重新应用修改。