在Git中,origin / master与origin master之间有什么区别?

时间:2013-08-08 22:21:00

标签: git

我知道, origin 是远程存储库的术语, master 是那里的分支。

我故意在这里省略“背景”,我希望答案不应该依赖于背景。所以在git命令行中, origin / master origin master 之间有什么区别。是否有一种非模棱两可的方式来了解何时使用 origin / master 以及何时应该使用 origin master

7 个答案:

答案 0 :(得分:285)

这里实际上有三件事:origin master是两件事,origin/master是一回事。共计三件事。

两个分支:

  • master是本地分支
  • origin/master是一个远程分支(它是名为“origin”的分支上名为“master”的分支的本地副本

一个遥控器:

  • origin是一个远程

示例:拉入两个步骤

由于origin/master是一个分支,您可以合并它。这里有两个步骤:

第一步,从远程master获取origin。将提取master上的origin分支,并将本地副本命名为origin/master

git fetch origin master

然后您将origin/master合并到master

git merge origin/master

然后,您可以将master中的新更改推回到origin

git push origin master

更多例子

您可以按名称获取多个分支......

git fetch origin master stable oldstable

您可以合并多个分支......

git merge origin/master hotfix-2275 hotfix-2276 hotfix-2290

答案 1 :(得分:10)

origin/master是一个实体(因为它不是物理分支)表示远程masterorigin分支的状态。

origin master是远程master上的分支origin

所以我们有这些,

  • origin / master(表示或指向远程分支的指针)
  • master - (实际分支
  • 实际分支
  • 实际分支
  • 实际分支

示例(在本地分支master中):

git fetch # get current state of remote repository
git merge origin/master # merge state of remote master branch into local branch
git push origin master # push local branch master to remote branch master

答案 2 :(得分:3)

origin/master是远程master分支

通常在执行git fetch origin来从服务器进行所有更改后,您将执行git rebase origin/master,以重新定义更改并将分支移动到最新索引。这里,origin/master指的是远程分支,因为你基本上告诉GIT将origin/master分支重新绑定到当前分支上。

例如,推送时可以使用origin mastergit push origin master只是告诉GIT将本地master分支推送到远程存储库。

答案 3 :(得分:3)

origin是远程git url的名称。 下面可以有更多的遥控器示例。

bangalore => bangalore.example.com:project.git

boston => boston.example.com:project.git

就origin / master(示例bangalore / master)而言,它指向 bangalore 站点上的“master”提交。 你在克隆中看到它。

远程班加罗尔可能已经提升,因为你已经完成了“获取”或“拉动”

答案 4 :(得分:2)

鉴于您可以在拔出网络电缆时切换到origin/master(虽然处于分离状态),但它必须是master分支origin的本地代表。

答案 5 :(得分:0)

在讨论区别之前,我们需要了解origin在Git中的含义。

origin 只不过是赋予远程存储库的原始名称。 Origin 只是一个位置而已。在以下示例中,代码库 URL 是来源或代码所在位置的真实来源。

git clone https://github.com/mycode/git-awsomecode.git

现在这个来源或你存储库的真实来源可以有分支,包括 master 或 develop 或者你命名它。

现在从上下文中获取起源,我们可以很容易地理解以下含义。

  1. origin master:我是驻留在名为 (origin) 的远程存储库上的 master 分支。

所以如果我输入 git pull origin master 会发生什么?

这将更新我的本地 master 分支(在我的本地机器上)将所有更改在远程 master 分支(即 origin master)上可用。

现在我希望我的更改与本地主分支合并,我该如何实现?

git merge origin/master

这将使用我的更改更新我的本地主分支。使用 origin/master 的原因只是命名约定,您可以将本地 master 分支命名为 origin/master 或 abcd。因此,您可以将本地分支而不是 origin/master 命名为 master,而 git 的命令将是 git merge master

如何使用所有本地更改更新我的远程主分支?

git push origin master

这个命令是说将我对原点(即存储库(https://github.com/mycode/git-awsomecode.git))的所有本地更改发送到主分支。

答案 6 :(得分:-1)

我建议使用该命令合并开发和掌握

git checkout master

git merge --commit --no-ff --no-edit develop

有关更多信息,请选中https://git-scm.com/docs/git-merge