赞
踩
- $ repo init -u <URL> [<OPTIONS>]
-
- 示例
- repo init -u ssh://gerrit-sh.noboauto.com:29418/qcom/es17/manifest -b release/gwm_v35_tank
-
首先当前目录产生一个.repo目录
然后克隆一份repo的源代码到.repo/repo下,里面存放了其他repo子命令,即repo的主体部分。
接着从manifest_git_path仓库地址clone清单库到.repo/manifests和.repo/manifests.git目录。
同时.repo目录下还包括manifest仓库(清单库)内容
- huyiwen@460f67ae8ef4:~/code_tank$ cd .repo/
- huyiwen@460f67ae8ef4:~/code_tank/.repo$ ls
- gdcmanfiests manifests manifests.git manifest.xml repo
- repo sync [project-list]
-
- 示例:
- huyiwen@460f67ae8ef4:~/code_tank/.repo/manifests$ cd ..
- huyiwen@460f67ae8ef4:~/code_tank/.repo$ cd ..
- huyiwen@460f67ae8ef4:~/code_tank$ repo sync -c --no-tags
下载新的更改并更新本地环境中的工作文件。如果在未使用任何参数的情况下运行 repo sync,则该操作会同步所有项目的文件。
运行 repo sync 后,将出现以下情况:
- 如果目标项目从未同步过,则 repo sync 相当于 git clone。远程代码库中的所有分支都会复制到本地项目目录中。
- 如果目标项目以前同步过,则 repo sync 相当于以下命令:
- git remote update
- git rebase origin/branch
- 其中 branch
branch 是本地项目目录中当前已检出的分支。如果本地分支没有在跟踪远程代码库中的分支,则相应项目不会发生任何同步。
如果 git rebase 操作导致合并冲突,使用常规 Git 命令(例如 git rebase --continue)来解决冲突。
当冲突出现时,只需要解决完冲突,然后执行git rebase --continue即可。
repo sync 运行成功后,指定项目中的代码即处于最新状态,已与远程代码库中的代码同步。
选项:
-j:开启多线程同步操作,这会加快sync命令的执行速度,过多会起反作用。默认情况下,使用4个线程并发进行sync
-c : –current-branch:只同步指定的远程分支。默认情况下,sync会同步所有的远程分支,当远程分支比较多的时候,下载的代码量就大。使用该参数,可以缩减下载时间,节省本地磁盘空间
--no -tags 不下载标签信息,可以加快下载时间
-d : –detach:脱离当前的本地分支,切换到manifest.xml中设定的分支。在实际操作中,这个参数很有用,当我们第一次sync完代码后,往往会切换到dev分支进行开发。如果不带该参数使用sync, 则会触发本地的dev分支与manifest设定的远程分支进行合并,这会很可能会导致sync失败
-f : –force-broken:当有git库sync失败了,不中断整个同步操作,继续同步其他的git库
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。