在Git中,origin / master vs origin master有什么区别?

我知道, 起源是远程仓库的一个术语, 主人是那里的分支。

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

这里实际上有三件事情: origin master是两个不同的东西, origin/master是一回事。 总共三件事。

两个分支:

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

一个遥控器:

  • origin是遥远的

例如:分两步

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

第一步,从远程origin获取masterorigin master分支将被提取,本地副本将被命名为origin/master

 git fetch origin master 

然后你把origin/master合并成master

 git merge origin/master 

然后你可以把你的新的变化推回到origin

 git push origin master 

更多的例子

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

 git fetch origin master stable oldstable 

你可以合并多个分支…

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

origin/master是表示远程originmaster分支状态的本地分支。

origin master是远程origin上的分支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 

origin/master是远程master分支

通常在做一个git fetch origin ,把所有的变化从服务器,你会做一个git rebase origin/master ,来重定义你的变化,并将分支移动到最新的索引。 在这里, origin/master指的是远程分支,因为你基本上是告诉GIT将origin/master分支重定位到当前分支上。

例如,您在推送时会使用origin mastergit push origin master只是简单地告诉GIT推送到远程仓库的本地master分支。

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

class加罗尔=> bangalore.example.com:project.git

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

就起源/主(例如class加罗尔/主)而言,它是指向class加罗尔站点上的“主”提交的指针。 你在克隆中看到它。

远程class加罗尔可能已经提前,因为你已经完成了“取”或“拉”

考虑到您可以在拔掉networking电缆的情况下切换到origin/master (虽然处于分离状态),但它必须是origin分支的本地表示。