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'

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



      本文转自Tenderrain 51CTO博客,原文链接:http://blog.51cto.com/tenderrain/1881971,如需转载请自行联系原作者





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章