我知道, origin 是远程存储库的术语, master 是那里的分支。
我故意在这里省略“背景”,我希望答案不应该依赖于背景。所以在git命令行中, origin / master 和 origin master 之间有什么区别。是否有一种非模棱两可的方式来了解何时使用 origin / master 以及何时应该使用 origin master ?
答案 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
是一个实体(因为它不是物理分支)表示远程master
上origin
分支的状态。
origin master
是远程master
上的分支origin
。
所以我们有这些,
示例(在本地分支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 master
。 git 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 或者你命名它。
现在从上下文中获取起源,我们可以很容易地理解以下含义。
所以如果我输入 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