注意命令中没有“/”。
我是一个git新手。
我在两台独立的机器(一台开发机器,一台测试机器)上使用相同的代码库,相同的分支。我在dev-machine上推了代码。
git push origin branchname
在测试机器上,我做了:
git fetch origin
git merge origin branchname
Git报告说“已经是最新的了。是的!”但我知道我不是。
最终我做了正确的
git merge origin/branchname
当我搞砸了时发生了什么:
git merge origin branchname
http://git-scm.com/docs/git-merge提到“章鱼合并”,但“起源”是特殊的(不是分支名称)所以我认为不会发生这种情况。
答案 0 :(得分:4)
这意味着“将分支origin
和branchname
合并到当前分支中” - 有效地请求将其他两个分支合并到当前分支中。请注意origin
是一个遥控器;当用作提交标识符时,它等同于origin/HEAD
(通常指向origin/master
)。
因此,假设您已经检出branchname
,那么您试图将分支与自身合并,这是一个无操作。听起来origin/HEAD
已经“合并”(提交是branchname
的祖先),所以也被解决为无操作。
换句话说,您尝试合并到分支中的两个提交都已经成为分支历史记录的一部分,因此Git正确地没有做任何事情。
答案 1 :(得分:-2)
如果您在远程来源上拥有branchname,那么在本地您调用origin / brachname,即您在遥控器上创建分支的本地副本。 origin / brachname是一个分支。
所以你做的是从遥控器(原点)获取分支(branchname)。现在您有一个本地副本(origin / branchname),然后将其合并到您的本地分支(branchname)。