repo 和 git 管理源代码


使用 repo 和 git 管理工程代码

代码版本控制工具

           代码版本控制工具很多,svn git 是比较常用的. Android 采用 Git + repo 来管理源代码,git 管理各个项目的源代码,可以清晰的记录修改历史和版本 branch 和 tag .整个工程用 repo 系统的管理,使用 repo ,开发者可以一次性的利用脚本将所有的 Android 项目代码下载到本地进行开发.

服务器代码下载

            参考:  http://blog.csdn.net/jingxia2008/article/details/7761740  详细介绍了 repo 下载的部分.

从 Google 的代码构建自己的 Android 源代码仓库

             下载代码的时候可以使用 repo 构建本地 Android 源代码仓库,使局域网内的其他开发者可以直接从当前的源代码仓库获取自己需要的版本
              只需要加上 --mirror 即可:
         
--mirror            mirror the forrest

从已经下载的代码构建 repo 仓库


               下载的代码里面依然包含了所有的 Android 代码和仓库信息,我们可以基于这个代码从新构建 Android 的源代码仓库:

           
jiangxd@arm-tools-server:/media/SAMBA/liuxin/Android-4.0.4_r2.1$ ls 
        abi     bootable  cts     development  docs      frameworks  libcore   ndk       prebuilt  system
        bionic  build     dalvik  device       external  hardware    Makefile  packages  sdk
               首先从 repo 库里面提取 manifest
               
jiangxd@arm-tools-server:/media/SAMBA/liuxin/Android-4.0.4_r2.1$ git clone --bare .repo/manifests/
        Initialized empty Git repository in /media/SAMBA/liuxin/Android-4.0.4_r2.1/manifests.git/
                此时 repo init 可以找到地址 .但是无法下载代码,需要将所有的 git 仓库全部 init --bare 成为 bare 仓库
                然后就可以下载代码了.当然这是一个麻烦的事情,建议使用 mirror 镜像一个可用的仓库.

Git 仓库的创建


                创建 Git 仓库比 repo 方便很多,你可以直接从任何源码库创建一个可用的仓库甚至是 bare 仓库,只需要在 git clone 添加 --bare 参数即可.
                git clone 创建的仓库默认是 master 分支,你可以使用 -b + branchname 指定分支名,这样仅仅对 branch 与 master 不在同一位置有效.


转载于:https://my.oschina.net/jingxia/blog/697446

### 使用 Repo Git 管理 AOSP 的方法最佳实践 #### 初始化环境 为了有效地管理操作 AOSP 项目,首先需要安装 `repo` 工具。由于 `repo` 是基于 Python 编写的工具集,因此也需要确保环境中已正确配置 Python 版本。 ```bash mkdir ~/bin PATH=~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo ``` 上述命令创建了一个本地二进制文件夹并将 `repo` 下载至该路径下[^3]。 #### 设置工作空间 初始化一个新的客户端存储库用于存放所有的子模块: ```bash mkdir aosp_workdir && cd $_ repo init -u https://android.googlesource.com/platform/manifest ``` 这一步骤指定了远程服务器地址作为同步源,并设置了默认分支其他必要的参数[^4]。 #### 同步代码库 执行完整的同步过程以拉取所有相关的 Git 子模块及其历史记录: ```bash repo sync ``` 此命令会依据 `.repo/manifests/default.xml` 文件中的定义自动处理多个项目的克隆与更新动作。 #### 创建补丁(Patch) 当需要针对特定问题制作修复方案时,建议按照以下流程进行: 1. 切换到目标版本: ```bash git checkout Android-6.0.1_r41 ``` 2. 新建特性分支: ```bash git checkout -b feature_branch_name ``` 3. 修改代码后将其加入索引区: ```bash git add . ``` 4. 提交更改之前可利用 `git diff --cached` 查看即将提交的内容;如果存在误改动,则可以通过 `git checkout -- <file>` 进行撤销[^2]。 5. 形成差异文件供后续审查或应用: ```bash git diff --cached >> my_patch.patch ``` #### 应用已有补丁 对于已经存在的 `.patch` 文件,可以直接应用于当前的工作树中: ```bash git apply path/to/my_patch.patch ``` 以上即为使用 `repo` 及 `git` 对 AOSP 开展日常维护工作的基本指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值