1、检出代码,指定git指定的分支和manifest
repo init -u git://xxx/xxx/manifest.git -b <BRANCH> -m <MANIFEST>
这里-m和-b的含义是:
1. 注意到manifest.git本身也是一个git project
2. 所以,-b指定的是使用#1中这个git project的哪个branch
3. -m指定的是,下载该git project中的哪个文件(应该是首先切换了branch,然后再下载该文件)。
repo init这样做过了之后,其实本地就建立起来了一个.repo目录,里面核心文件就是manifest.xml,这个xml中就定义了:
- 包含哪些git project
- 每个git project使用什么branch
- 每个git project在本地磁盘上的路径和远端服务器上该git project的路径。
事实上,当repo init完成,在本地的.repo/manifests目录下就可以看到manifest这个git project,可以用git branch -av来查看branch,用git log来查看日志。
2、创建并切换所有分支
git start my_branch --all
my_branch 是你想要创建的分支名称
3、切换分支,默认是切换所有仓库中的分支
repo checkout 分支名称
4、repo forall 对所有分支循环执行 ,git reset --hard HEAD 强制撤销本地所有改动,恢复最新代码
repo forall -c "git reset --hard HEAD"
等同于手动cd到所有分支目录,执行git reset --hard HEAD
5、删除分支
repo abandon xxx
xxx是分支名称
6、同步远程最新代码
repo sync -d -c --no-tags
-c 的意思是只下载manifest中定义的当前分支,不下载其他分支,manifest中默认会开启 -c
-d 的意思脱离本地分支,切换到服务器的分支,前提是本地代码要clean
--no-tags 不下载 tag,可以减少时间,节省空间,一般情况下我们也用不到tag