repo用法及原理详解,干了啥干了啥

各种博客上经常看到下载repo代码、赋予权限,然后就使用,你真的理解它在做什么吗?

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

repo init -u <URL> [<OPTIONS>]
repo sync

curl干了啥

curl下载了repo脚本,然而,他只是一个repo bootstrap脚本,只支持init和help两个命令。

init 才安装完整的repo工具,之后将控制权转移给repo。

chmod a+x干了啥

借用一图说明:

给所有用户可执行权限。~/bin/repo 是个文件不是目录。 

u:user。就是你自己的权限

g:group。就是和你同组的人的权限

o:others。就是和你不同组的人的权限

a:all。就是所有人的权限

r:read。读权限,值为4

w:write。写权限,值为2

x:execute。执行权限,值为1

开头的符号

-:普通文件

d:directory。目录

repo init干了啥

两个阶段。

第一个阶段

初始化repo,仅涉及两个参数:

  • --repo-url=URL  repo工具本身的git库地址,缺省值为 git://android.git.kernel.org/tools/repo.git
  • --repo-branch=REVISION  repo版本库分支名称,缺省值为 stable

注意:这里有个坑,如果你用其他 repo-url,设置REVISION时可能就没有 stable 分支。都有啥分支?repo init的时候会显示有哪些分支。或者打开URL查呗。

第二个阶段

现在控制权转交给从URL下载的 repo 脚本了,这时候当前文件夹下多个.repo目录,第二阶段脚本是由.repo/repo/subcmds/init.py 负责执行的,python脚本哦~

现在开始克隆 -u 参数提供的 manifest git 仓库:

  • -u URL  指定要从中检索清单代码库的网址
  • -m MANIFEST.xml  选择代码库的一个清单文件。默认为 default.xml
  • -b REVISION  会检出 manifest git 仓库的修订版本,即特定的清单分支

repo sync 干了啥

代码清单都有了,repo sync 同步代码到本地。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值