git clone只会在本地默认创建一个master分支,只能克隆master分支的代码,无法clone所有分支,如果主分支没代码就只能看到.git目录。如下面的这个:
$ git clone git://xxx.org/yyy/zzz.git
发现本地只有一个.git目录,那么就需要checkout。
进入你的本地目录,
$ cd zzz
如果远程还有其他的分支,此时用
$ git branch -a
查看所有分支:
- master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/develop
remotes/origin/android
能看到远程的所有的分支,如remotes/origin/develop
可以使用checkout命令来把远程分支取到本地,并自动建立tracking
$ git checkout -b develop origin/develop
Branch develop set up to track remote branch develop from origin.
Switched to a new branch ‘develop’.
作用是checkout远程的develop分支,在本地起名为develop分支,并切换到本地的develop分支。
$ git checkout -b android origin/android
作用参见上一步解释。
$ git checkout develop,切换回develop分支,并开始开发。
或者使用-t参数,它默认会在本地建立一个和远程分支名字一样的分支
$ git checkout -t origin/develop
也可以使用fetch来做:
$ git fetch origin develop:develop
不过通过fetch命令来建立的本地分支不是一个track branch,而且成功后不会自动切换到该分支上
假如develop分支下有submodule,使用
git submodule status
git submodule init
git submodule update
git pull
同步子分支。
注意,不要在本地采用如下方法:
$ git branch develop
$ git checkout develop
$ git pull origin develop:develop
因为,这样建立的branch是以master为基础建立的,再pull下来的话,会和master的内容进行合并,有可能会发生冲突