我们知道使用 git clone 地址 命令默认可以将远端仓库整个clone下来,但只会在本地创建master一个分支
我们使用 git branch 命令查看,也只能看到master这样一个分支
$ git branch
* maser
当我们使用 git branch -a 命令时可以看到远端的所有分支
$ git branch -a
*master
remote/origin/HEAD -> origin/master
remote/origin/master
remote/origin/branch1
remote/origin/branch2
如果我们想将分支branch1拉取到本地,可以使用以下几种方法:
- 使用checkout命令,并自动建立tracking
$ git checkout -b branch1 origin/branch1
或者使用 -t 参数,默认在本地建立一个与远端分支同名的分支
$ git checkout -t origin/branch1
- 使用fetch命令
$ git fetch origin branch2(远端):branch2(本地)
git fetch 相当于是从远程获取最新到本地,不会自动merge,通过fetch命令来建立的本地分支不是一个track branch,而且成功后不会自动切换到该分支上
同时我还在网上看到一种 极不推荐 的方法
$ git branch branch2
$ git checkout branch2
$ git pull origin branch2:branch2
通过这种方式,branch2分支是基于master建立在本地的,pull的时候会和本地branch2中存在的master内容进行合并,可能会发生冲突
网友评论