repo 使用说明

更新时间:2023-05-04 15:13:31 阅读: 评论:0

Repo Tutor
1 什么是repo
repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载、管理Android项目的软件仓库。既然repo是google用来管理Android的工具,那跟我们有什么关系呢?好用,所以就拿过来呗,反正不要钱。使用repo还是因为我们的版本控制迁移到了git上来管理,由于git的一些局限性,如果没有repo,要管理项目仓库会很繁琐。
2  repo在公司项目上的使用
2.0  git的安装
Ubuntu上直接sudo apt-get install git-core git-doc就ok了,git-core就是git,git-doc是帮助文档。
2.1 获取repo
标准的repo当然是在google家了,我们这里需要用公司修改定制的repo。
这个实际上就是一个脚本,我们获取的repo可以说只是一个引导脚本,整个repo是一系列的脚本,我们将会在后面看到。将这个repo放到你的/usr/local/bin下,chmod a+x repo 加上可执行权限。
2.2 ssh密钥生成
我们的项目git共享仓库采用ssh协议传输,这里生成一对ssh密钥,将公钥加到服务器上,就可以实现免密码了。
生成pub key:
执行ssh-keygen -t rsa,一直回车
会在你的home目录的.ssh/目录下生成id_rsa.pub(公钥)和id_rsa(私钥)。
将id_rsa.pub发送给系统管理员就可以了。
当我们用ssh协议和服务器通信的时候,就使用这一对密钥进行认证,这样就不用每次都输入密码了。
2.3 使用repo初始化本地仓库
有了以上的基础工作后,我们就可以使用repo来初始化本地仓库了。
作为演示,这里创建一个test的目录
创建一个test目录
zenghui@ubuntu:~/git$ mkdir test
zenghui@ubuntu:~/git$ cd test/
使用repo初始化:
zenghui@ubuntu:~/git/test$ repo init -u git@svn.:linux-sunniwell.git/projects/huawei-ba-manifest.git -b develop
-
u参数指定url
-b 参数指定分支,你需要用哪个分支就写哪个分支,从之后的命令可以看出我们现在有以下的分支:
* [new branch]      ctc30      -> origin/ctc30
* [new branch]      develop    -> origin/develop
* [new branch]      ipv6      -> origin/ipv6
* [new branch]      master    -> origin/master
* [new branch]      widening  -> origin/widening
我们这里使用的就是develop分支。
命令的执行结果如下:
Getting repo ...
  from git@svn.:linux-sunniwell.git/git-repo
remote: Counting objects: 1130, done.
remote: Compressing objects: 100% (418/418), done.
remote: Total 1130 (delta 763), reud 1003 (delta 689)
Receiving objects: 100% (1130/1130), 321.78 KiB | 186 KiB/s, done.
Resolving deltas: 100% (763/763), done.
From svn.:linux-sunniwell.git/git-repo
* [new branch]      master    -> origin/master
* [new branch]      stable    -> origin/stable
Get git@svn.:linux-sunniwell.git/projects/huawei-ba-manifest.git
remote: Counting objects: 136, done.
remote: Compressing objects: 100% (105/105), done.
remote: Total 136 (delta 34), reud 0 (delta 0)
Receiving objects: 100% (136/136), 448.55 KiB | 184 KiB/s, done.
Resolving deltas: 100% (34/34), done.
From svn.:linux-sunniwell.git/projects/huawei-ba-manifest
* [new branch]      ctc30      -> origin/ctc30
* [new branch]      develop    -> origin/develop
* [new branch]      ipv6      -> origin/ipv6
* [new branch]      master    -> origin/master
* [new branch]      widening  -> origin/widening
Your identity is: zenghui <>
If you want to change this, plea re-run 'repo init' with --config-name
repo initialized in /home/zenghui/git/test
命令结果输出解释:
Getting repo ...
  from git@svn.:linux-sunniwell.git/git-repo
--》更新repo,上面这个地址是/usr/local/bin/repo里面配置的
REPO_URL='git@svn.:linux-sunniwell.git/git-repo'
这个repo不是标准的,而是根据公司的实际情况作了修改。
Get git@svn.:linux-sunniwell.git/projects/huawei-ba-manifest.git
--》这里才开始初始化清单库
* [new branch]      ctc30      -> origin/ctc30
* [new branch]      develop    -> origin/develop
* [new branch]      ipv6      -> origin/ipv6
* [new branch]      master    -> origin/master
* [new branch]      widening  -> origin/widening
--》以上是所有分支,我们这里用的是develop分支
repo initialized in /home/zenghui/git/test
--》初始化完成
初始化完成了,我们看看目录下面有什么变化:
zenghui@ubuntu:~/git/test$ ls -a
.  ..  .repo
多了一个.repo的隐藏文件夹
再看看.repo里面都有些啥:
zenghui@ubuntu:~/git/test$ ls -al .repo/
total 20
drwxr-xr-x 5 zenghui zenghui 4096 2012-06-05 14:48 .
drwxr-xr-x 3 zenghui zenghui 4096 2012-06-05 14:47 ..
drwxr-xr-x 3 zenghui zenghui 4096 2012-06-05 14:48 manifests        //里面只有一个清单库l
drwxr-xr-x 9 zenghui zenghui 4096 2012-06-05 14:48 manifests.git    //mainfest库的克隆
lrwxrwxrwx 1 zenghui zenghui  21 2012-06-05 14:l -> l    //清单库的链接
drwxr-xr-x 7 zenghui zenghui 4096 2012-06-05 14:47 repo        //repo实现的克隆,里面藏着repo的所有脚本
2.4 repo init都些啥
实际上repo init只是下载了项目的清单库,我们来看看这个清单库长啥样儿吧。
zenghui@ubuntu:~/git/test/.repo$ cat l
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote  name="origin"    //远程版本库
          fetch="ssh://git@svn./linux-sunniwell.git/"        //版本库的基址
          revi梅花的寓意 ew="review." />        //代码审核服务器
  <default revision="develop" remote="origin" />    //默认分支为"develop", 远程版本库"origin"

本文发布于:2023-05-04 15:13:31,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/95560.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:项目   管理   仓库   脚本   分支
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图