~/.zhsrc
    ~ 代表家目录.就是当前用户的的一级目录

    1. ~ ~
    2. ~ pwd
    3. /Users/shanks
    4. 就是这个目录
    5. ~/.zshrc
    6. zsh: permission denied: /Users/shanks/.zshrc
    7. ./gradlew
    8. ./代表当前目录

    再linux 系统中,文件夹前面加. 代表这是隐藏文件
    Android Repo https://source.android.google.cn/setup/develop/repo?hl=zh-cn
    Repo https://gerrit.googlesource.com/git-repo/+/refs/heads/master/README.md

    安装 repo

    1. $ mkdir -p ~/.bin
    2. $ PATH="${HOME}/.bin:${PATH}"
    3. $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
    4. $ chmod a+rx ~/.bin/repo
    5. 然后你可以在
    6. 把他加入到配置文件
    7. vi ~/.zshrc
    8. 最底下
    9. export PATH=${PATH}:/Users/Shanks/.bin
    10. source ~/.zshrc

    image.png

    Git作为一个版本控制工具,功能很强大,新建分支,切换分支都很快,小团队用Git就能很好地管理好了,但如果是Android系统如此庞大的工程呢,我们知道全套Android源码是很大很大的,目录结构也很复杂,如果直接将其init成一个Git库,简直是灾难,也不符合解耦的要求。

    为什么会有Repo?
    Git是无法将整个库中间的某个目录单独clone出来的,这样如果我只是负责frameworks的,但我下代码的时候却得把整个都下下来。
    那怎么办呢,很简单,分模块嘛,比如就把根目录下的每个目录当做一个单独的Git库,这样开发只要专注于自己的模块就行,其他模块的代码就当看不见。嗯,很好,问题似乎解决了。但这样还不够,你总得有一套完整的Android 源码才能编译出一个版本吧,你怎么知道这个大版本里包含了哪个库呢,有人会说,为啥要记录呢,不就这么些库嘛,依次取出来不就行了。或许对于我们工作中接触到的工程规模来说,这样是够了,但Android,都已经7.1.1了,相比较一开始,Android本身也发生了翻天覆地的变化,有些模块在演进过程中可能就渐渐被抛弃了,这个时候我们就需要一个定义一个文件去记录每一个版本的Android到底用了哪些库。

    那么Repo来了
    Repo是谷歌用Python脚本写的调用git的一个脚本。主要是用来下载、多个Git仓库。

    1. Android项目那是由多个git仓库组成的,它有非常多的分支。<br /> 如:android/framework/base它就是一个git仓库。<br /> android/packages/apps/Cameraapp下面的所有的应用都是单独的git仓库进行的管理)<br /> 这样假如你不用repo进行统一管理的话,就说基本的你下载Android源码,难道要一个个的写每个仓库的url?然后下载完<br /> 单独的配置每个仓库?单独初始化什么的?显然比较麻烦。<br /> repo 其实就是把相关的git操作命令进行了封装,方便一下操作好几个git仓库.

    下载repo https://www.jianshu.com/p/b8e811e9db22