首页 > 代码库 > git入门(6.repo)

git入门(6.repo)

repo是一种代码版本管理工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库。

因为Android源码引用了很多开源项目,每一个子项目都是一个Git仓库,每个Git仓库都有很多分支版本,为了方便统一管理各个子项目的Git仓库,需要一个上层工具批量进行处理,因此repo诞生。

repo也会建立一个Git仓库,用来记录当前Android版本下各个子项目的Git仓库分别处于哪一个分支,这个仓库通常叫做:manifest仓库。

repo start <topic_name>

  开启一个新的主题,其实就是每个Project都新建一个分支。

repo init -u <url> [OPTIONS]

  在当前目录下初始化repo,会在当前目录生生成一个.repo目录,像Git Project下的.git一样,-u指定url,可以加参数-m指定manifest文件,默认是default.xml,.repo/manifests保存manifest文件。.repo/projects下有所有的project的数据信息,repo是一系列git project的集合,每个git project下的.git目录中的refs等目录都是链接到.repo/manifests下的。

repo manifest

  可以根据当前各Project的版本信息生成一个manifest文件

repo sync [PROJECT1...PROJECTN]

  同步Code。

repo status

  查看本地所有Project的修改,在每个修改的文件前有两个字符,第一个字符表示暂存区的状态。

  每二个字符表示工作区的状态 

  repo prune <topic> 

  删除已经merge的分支

repo abandon <topic>

  删除分支,无论是否merged

repo branch或repo branches

  查看所有分支

repo diff

  查看修改

repo upload

  上传本地提交至服务器

repo forall [PROJECT_LIST]-c COMMAND

  对指定的Project列表或所有Project执行命令COMMAND,加上-p参数可打印出Project的路径。

repo forall -c ‘git reset --hard HEAD;git clean -df;git rebase --abort‘

  这个命令可以撤销整个工程的本地修改。


git入门(6.repo)