目录

1. 当前源为清华源

2. 下载repo

2.1 方法

2.2 网络访问问题

3. git配置

4. 公钥生成上传

5. repo使用

 

1. 当前源为清华源

sudo apt-get update

更新之。

2. 下载repo

2.1 方法

方法一:

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

$ mkdir ~/bin

$ PATH=~/bin:$PATH

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

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

 

方法二:

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

$ mkdir ~/bin

$ 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

# repo

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

source 一下生效:

source .bashrc

3. git配置

git config --global user.name "Your Name"

git config --global user.email "you@example.com"

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

4. 公钥生成上传

ssh-keygen -t rsa

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

进目录:

$ cd ~/.ssh/

$ gedit id_rsa.pub

 

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

5. repo使用

repo init

repo init -u []

-u 指定repo仓库(即manifest仓库)的url地址, 后面[]就是可选的命令参数:

Manifest options:

-m :在manifest仓库中选择一个xml文件,如果没有设置,就使用default.xml

-b:选择一个maniest仓库中的一个特殊的分支

repo Version options:(一般来说几乎不会使用这下面的这些选项)

--repo-url:设定repo的版本库地址。

--repo-branch:设定需要检出的分支。

--no-repo-verify:设定不要对repo的里程碑签名进行严格的验证。

--mirror:只在repo第一次初始化的时候使用,建立本地镜像

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

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

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

repo sync

repo sync

默认同步xml文件中定义的所有仓库,也可以单独指定sync哪个或哪些仓库,如下:

repo sync name1 name2 name3 ...

除此之外还有如下选项:

-j : 多任务,一般8核心可以开到16任务,过多会起反作用

-c: 只下载当前分支代码

-d: 让工程回退到manifest指定的版本

-f: 如果某个工程同步失败,继续同步

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

常见错误:fatal: Not a git repository

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

例如:

fatal: Not a git repository: '/home/android/.repo/projects/here/legacy.git'

则直接执行:

rm -rf /home/android/.repo/projects/here/legacy.git

然后执行:

repo sync

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: