2014-09-04 105 views
3

请注意命令中缺少“/”。git merge origin branchname做什么?

我是一个git新手。

我正在两个独立的机器(一台开发机器,一台测试机器)上使用同一代码库,同一分支。我在开发机器上推送代码。

git push origin branchname 

在测试机,我所做的:

git fetch origin 
git merge origin branchname 

的Git报 “已经起床了最新Yeeah!”但我知道我没有。

最后我做了正确的

git merge origin/branchname 

当我搞砸了,做了什么事:

git merge origin branchname 

http://git-scm.com/docs/git-merge提到的“章鱼合并”,而是“出身”是特殊的(不是一个分支名)所以我不认为这发生了。

+0

是的。重复。我投票结束了我的问题。我应该删除它吗? – 2014-09-04 19:58:00

+1

现在您无法删除您的问题,并且已发布回答。无论如何,重复并不全是坏事;他们帮助人们(可能不是所有人都使用相同的搜索查询)汇聚到他们的问题的解决方案。 – Jubobs 2014-09-04 19:59:10

回答

3

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

因此,假设您已经检出branchname,您试图将分支与自己合并,并且这是无操作。这听起来像origin/HEAD已经“合并”(承诺是branchname的祖先),所以也被解析为无操作。

换句话说,你试图合并到你的分支的两个提交已经是你的分支历史的一部分,所以Git没有做任何事情。

+0

在这种情况下使用术语“[three-way merge]”(http://en.wikipedia.org/wiki/Merge_(revision_control)#Three-way_merge)“可能会混淆。你应该写“两个分支合并成另一个”或类似的东西。 – Jubobs 2014-09-04 19:24:53

+1

@Jubobs公平点,有时候我忘记了三路合并通常是指文件如何合并。在这种情况下,这不是一个不准确的术语,但基于这个术语通常如何使用可能会引起误解,而且我明白这一点。 – cdhowie 2014-09-04 19:26:49

+0

现在我很高兴':)' – Jubobs 2014-09-04 19:27:34

-2

当你在一个远程原点上有branchname时,那么在你的本地你呼叫origin/brachname,那就是你在远程创建一个分支的本地副本。起源/ brachname是一个分支。

所以你所做的是从远程(原点)获取分支(branchname)。现在你有一个本地副本(origin/branchname),然后你将它合并到你的本地分支(branchname)中。

+0

这似乎是重申OP已经知道的信息,但没有解决OP不能理解的特定形式的Git命令('git merge origin branchname')。因此,它根本没有回答这个问题。 – cdhowie 2014-09-04 19:29:21

相关问题