只是一个免责声明:在使用 git 几个月后,我仍然完全不知道我在使用它时在做什么。只有当我严格按照我在网络上的各个页面上找到的说明进行操作时,事情才会奏效。
我想做的是更新我的存储库,它是从另一个项目派生出来的。我发现这些说明有效,每次我想更新时我都一直在遵循它们
但是,这次当我尝试 merge 时,我得到了这个:
warning: refname 'upstream/master' is ambiguous.
Already up-to-date
而且什么也没有发生,即使我从中 fork 的项目已经进行了最近的提交。我真的不知道出了什么问题,我真的很沮丧。抱歉,如果这个问题非常菜鸟和/或愚蠢。
编辑 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' is ambiguous
Git: refname 'master' is ambiguous
warning: refname 'HEAD' is ambiguous
Git warning: refname 'xxx' is ambiguous
最佳答案
您有两个名为 upstream/master
的分支。一个是本地分支,一个是远程分支。当您尝试执行 git merge
时,git
不知道您希望 merge 这两个分支中的哪一个,因此会产生歧义。
这可以从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
。
关于git merge 上游/master "already up-to-date",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13909091/