master, origin, origin/master的含义

659 阅读2分钟

概述

在刚接触git并执行git命令进行操作时,经常分不清'master', 'origin', 'origin/master', 'origin master'的含义,每次都要翻小笔记或者谷歌。本次通过总结,对上述多个参数的含义进行总结,供日后复习于参考。

讲解

master : Git 默认分支名字。它并不是一个特殊分支、跟其它分支完全没有区别。之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它。

origin :Git 克隆的仓库服务器的默认名字,也就是远程名。

origin master :代表着两个概念,前面的 origin 代表远程名,后面的 master 代表远程分支名

origin/master :只代表一个概念,即远程分支名,是从远程拉取代码后在本地建立的一份拷贝。如果分支名称为leo,当分支同步到服务器时,会看到服务器上的名字为 origin/leo。

举例说明

  • git fetch origin master

意思是从名为 origin 的远程上拉取名为 master 的分支到本地分支 origin/master 中。既然是拉取代码,当然需要同时指定远程名与分支名,所以分开写。

  • git merge origin/master

意思是合并名为 origin/master 的分支到当前所在分支。既然是分支的合并,当然就与远程名没有直接的关系,所以没有出现远程名。需要指定的是被合并的分支。

  • git push origin master

意思是推送本地的 master 分支到远程 origin,涉及到远程以及分支,当然也得分开写了。

  • git fetch origin master stable oldstable

一次性拉取多个分支的代码

  • git merge origin/master hotfix-1 hotfix-2 hotfix-3

一次性合并多个分支的代码