2

只是一个免责声明:在使用 git 几个月后,我仍然不知道我在使用它时在做什么。只有当我完全按照我在网上各个页面上找到的说明进行操作时才会起作用。

我要做的是更新我的存储库,该存储库是从另一个项目派生的。我发现这些说明有效,并且每次我想更新时都一直在遵循它们

但是,这次当我尝试合并时,我得到了这个:

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

即使我派生出的项目最近提交了,也没有任何反应。我真的不知道出了什么问题,我真的很沮丧。对不起,如果这个问题非常愚蠢和/或愚蠢。

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

编辑 2: git branch -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' 不明确
Git:refname 'master' 不明确
警告:refname 'HEAD' 不明确
Git 警告:refname 'xxx' 不明确

4

2 回答 2

8

你有两个分支叫做upstream/master. 一个是本地分支,一个是远程分支。当您尝试执行 agit 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

于 2012-12-17T06:35:40.707 回答
2

要么运行:

git merge remotes/upstream/master

代替

git merge upstream/master

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

git branch -d upstream/master

并了解 git 的工作原理;)。它并没有那么复杂,一旦你理解了核心原则,一切都很容易。

于 2012-12-17T09:52:52.977 回答