• Linux ——repo下载与使用方法详解


    目录

    1. 当前源为清华源

    2. 下载repo

    2.1 方法

    2.2 网络访问问题

    3. git配置

    4. 公钥生成上传

    5. repo使用


     

    1. 当前源为清华源

    sudo apt-get update

    更新之。

    2. 下载repo

    2.1 方法

    方法一:

    根目录下创建bin文件夹,并且配置环境变量;

    1. $ mkdir ~/bin
    2. $ PATH=~/bin:$PATH

    下载repo脚本,并且给与权限:

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

     

    方法二:

    根目录下创建bin文件夹,配置环境变量;

    1. $ mkdir ~/bin
    2. $ PATH=~/bin:$PATH

    提供清华镜像下载repo文件:

    git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo

     这样直接下载了整个文件夹。

    将下载的git-repo文件夹中的repo文件复制到bin下,并且修改权限chmod a+x ~/bin/repo;

    $ chmod a+x ~/bin/repo

      

    2.2 网络访问问题

            当你执行完以上步骤之后,理论上就可以正常使用repo了,对于gu鸽但是需要梯子,否则在使用repo init的时候,就会出现如下的错误:

    Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle

    解决》》使用清华镜像:

    sudo gedit ~/.bashrc
    1. # repo
    2. export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

    source 一下生效:

    source .bashrc

    3. git配置

    1. git config --global user.name "Your Name"
    2. git config --global user.email "you@example.com"

            第一条配置用户名,设置您账号的缺省身份标识;第二条配置邮箱,邮箱是不是gu鸽的都行。如果仅在本仓库设置身份标识,则省略 --global 参数。

    4. 公钥生成上传

    ssh-keygen -t rsa

     生成ssh key,简便做法就是直接按回车,有三个回车。

    进目录:

    1. $ cd ~/.ssh/
    2. $ gedit id_rsa.pub

     

      复制公钥,粘贴到gitlab的SSH KEY里:

    5. repo使用

    • repo init
    1. repo init -u []
    2. -u 指定repo仓库(即manifest仓库)的url地址, 后面[]就是可选的命令参数:
    3. Manifest options:
    4. -m :在manifest仓库中选择一个xml文件,如果没有设置,就使用default.xml
    5. -b:选择一个maniest仓库中的一个特殊的分支
    6. repo Version options:(一般来说几乎不会使用这下面的这些选项)
    7. --repo-url:设定repo的版本库地址。
    8. --repo-branch:设定需要检出的分支。
    9. --no-repo-verify:设定不要对repo的里程碑签名进行严格的验证。
    10. --mirror:只在repo第一次初始化的时候使用,建立本地镜像

    就像这样(获取最新版本的 Repo 及其最近的所有错误更正内容):

    repo init -u https://android.googlesource.com/platform/manifest

            必须为清单指定一个网址,该网址用于指定 Android 源代码中包含的各个代码库将位于工作目录中的什么位置。

    • repo sync
    1. repo sync
    2. 默认同步xml文件中定义的所有仓库,也可以单独指定sync哪个或哪些仓库,如下:
    3. repo sync name1 name2 name3 ...
    4. 除此之外还有如下选项:
    5. -j : 多任务,一般8核心可以开到16任务,过多会起反作用
    6. -c: 只下载当前分支代码
    7. -d: 让工程回退到manifest指定的版本
    8. -f: 如果某个工程同步失败,继续同步

     repo sync才是把仓库的东西下下来的指令。

    常见错误:fatal: Not a git repository

            在下载Android源码的时候,经常会遇到fatal: Not a git repository 错误,对于这类错误,解决方案就是直接删除相应的目录,然后重新执行repo sync即可。

    例如:

    1. fatal: Not a git repository: '/home/android/.repo/projects/here/legacy.git'
    2. 则直接执行:
    3. rm -rf /home/android/.repo/projects/here/legacy.git
    4. 然后执行:
    5. repo sync

  • 相关阅读:
    解决yarn删除代理不成功的问题
    curl常用参数详解及示例
    深入理解MySQL——理清访问权限控制系统
    Java多线程 Future和FutureTask的使用和源码分析(全解析)
    Java--Spring和MyBatis集成
    footer页面布局
    阿里规范说MySQL单表行数不要超过2000w,为啥?
    【Python深度学习】深度学习框架搭建模版
    c++与c 的知识点
    【番外篇】如何制作慕斯蛋糕
  • 原文地址:https://blog.csdn.net/wangguchao/article/details/127448175