2012-12-17 89 views
2

只是一个免责声明:在使用git几个月后,我仍然完全不知道我在使用它时做了什么。唯一的事情就是当我完全按照我在网页上找到的指示进行操作时。git merge upstream/master“already up-to-date”

我想要做的就是更新我的资料库,这是从另一个项目分叉。我发现这些指令,我一直想更新

但是每次跟了上去,这个时候,我尝试合并我得到这个:

warning: refname 'upstream/master' is ambiguous. 
Already up-to-date 

并没有任何反应,即使项目我从中分出最近的承诺。我真的不知道哪里出了问题,我真的很沮丧。对不起,如果这个问题是令人难以置信的不讨人喜欢和/或愚蠢的。

编辑1:此外,我已经搜索了许多解决方案,但没有成功。

编辑2:混帐分支的输出-a

* master 
upstream/master 
remotes/origin/HEAD -> origin/master 
remotes/origin/log-upgrade 
remotes/origin/master 
remotes/origin/past-gens 
remotes/origin/prototype-party 
remotes/upstream/log-upgrade 
remotes/upstream/master 
remotes/upstream/past-gens 
remotes/upstream/prototype-party 

编辑3:类似问题

git refname 'origin/master' is ambiguous
Git: refname 'master' is ambiguous
warning: refname 'HEAD' is ambiguous
Git warning: refname 'xxx' is ambiguous

+0

你可以添加'git branch -a'的输出吗?如果你不确定你在用'git'做什么,我会推荐阅读[Pro Git book](http://git-scm.com/book),我发现它在学习理论背后'git'。有很好的图表和一切。 – simont

回答

7

你有两个分支upstream/master。一个是本地分支,一个是远程分支。当您尝试执行git merge时,git不知道您希望合并的这两个分支中的哪一个,因此含糊不清。

这可以从git branch -a可以看出(显示所有git分支机构,包括遥控器):

upstream/master 
<SNIP> 
remotes/upstream/master 

为了解决这个问题,你既可以重新命名(或删除)当地分支:

git branch -m <old name> <new name> 

在你的情况下,你会重命名为像这样(更改名称为newname):

git branch -m upstream/master newname 

这应该让你做一个git fetch/git merge正常。

+0

我将upstream/master重命名为上游/ mastertwo,但现在当我尝试从上游/ mastertwo合并时,它仍然表示最新。 –

+0

您重命名_local_分支,这是_probably_不必要的,并且只是由于您在使用git时出错而创建的。你想从_remote_分支合并,这个分支应该仍然被命名为upstream/master。 –

2

要么只是运行:的

git merge remotes/upstream/master 

代替

git merge upstream/master 

或删除您的本地upstream/master分支,通过运行:

git branch -d upstream/master 

,并学习如何git的作品)。这并不复杂,一旦你理解了核心原则,一切都很简单。