git合并起源branchname做什么?

时间:2014-09-04 19:13:34

标签: git git-merge

注意命令中没有“/”。

我是一个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提到“章鱼合并”,但“起源”是特殊的(不是分支名称)所以我认为不会发生这种情况。

2 个答案:

答案 0 :(得分:4)

这意味着“将分支originbranchname合并到当前分支中” - 有效地请求将其他两个分支合并到当前分支中。请注意origin是一个遥控器;当用作提交标识符时,它等同于origin/HEAD(通常指向origin/master)。

因此,假设您已经检出branchname,那么您试图将分支与自身合并,这是一个无操作。听起来origin/HEAD已经“合并”(提交是branchname的祖先),所以也被解决为无操作。

换句话说,您尝试合并到分支中的两个提交都已经成为分支历史记录的一部分,因此Git正确地没有做任何事情。

答案 1 :(得分:-2)

如果您在远程来源上拥有branchname,那么在本地您调用origin / brachname,即您在遥控器上创建分支的本地副本。 origin / brachname是一个分支。

所以你做的是从遥控器(原点)获取分支(branchname)。现在您有一个本地副本(origin / branchname),然后将其合并到您的本地分支(branchname)。