repo命令

repo通过git库管理项目的清单文件,git库名为manifests。

$ repo  
//command:help、init、sync、upload、diff、download、forall、prune、start、status
$ repo init -u 

-u 指定manifest的远程git库url
-m 指manifests库中的清单文件
-b指定manifests.xml文件中的一个版本

执行repo命令时,可以通过–trace参数,来看实际发生:

$ repo --trace init -u $URL -b $BRANCH -m $MANIFEST
$ repo sync 

第一次触发同步操作=git clone
已经触发过同步操作=git remote update &&git rebase origin/
就是当前与本地分支所关联的远程分支。
代码合并可能会产生冲突,当冲突出现时,只需要解决完冲突,然后执行git rebase --continue即可。

$ repo upload  //将本地的代码上传到远程服务器
$ repo download   TARGET  CHANGE

TARGET:upload是把改动内容提交到Gerrit,download是从Gerrit下载改动
CHANGE:指定要下载的PROJECT,譬如platform/frameworks/base, platform/packages/apps/Mms
指定要下载的改动内容。这个值是一个Review任务URL的最后几位数字。 譬如,AOSP的一个Review任务https://android-review.googlesource.com/#/c/23823/,其中23823就是。

$ repo forall [PROJECT_LIST] -c 
$ repo forall frameworks/base packages/apps/Mms -c "git status"

表示对platform/frameworks/base和platform/packages/apps/Mms同时执行git status命令。

$ repo prune []

删除指定PROJECT中,已经合并的分支

$ repo status []

查看多个git库的状态

$ repo start  []

切换到指定的分支

开发流程:

   repo init    //初始化工程,指定待下载的分支
    repo sync   //下载代码
    repo start   //将本地git库切换到开发分支
     在本地进行修改,验证后,提交到本地
     repo upload   //上传到服务器,等待review

下载远程代码:

   $ repo sync -c   //只下载manifest中设定的分支

常用命令

repo init -u URL -b ........ // 创建.repo 
repo upload // 将代码提交到gerrit.
repo abandon master // 放弃master分支
repo forall -c "git reset --hard HEAD" // 所有代码执行git命令,回退到HEAD
// repo sync相当于git clone会把repository中的所有内容拷贝到本地,非首次运行repo sync相当于更新和合并.
// repo sync会更新.repo下面的文件,如果在merge的过程中出现冲突,这需要手动运行git rebase --continue.
repo sync -c -j 4 
repo start master --all // 创建新分支

你可能感兴趣的:(linux,git)