repo manifest.xml中的group notdefault概念
使用repo重新与服务器同步,摒弃本地更改
最近在编译android源码,不小心改了本地的文件,想要重新与服务器同步。使用repo命令将整个项目中与服务器不同的文件都同步了的命令. 只修改了文件内容,而没有改变文件、文件夹存放位置时,才能使用以下命令:
repo forall -c git reset --hard HEAD
repo forall -c git reset --hard HEAD
使用repo将本地代码从master branch转换到指定的branch
已经通过repo sync将本地代码与服务器上的master branch同步,若想转换成指定的branch,可使用以下命令:
repo forall -c git checkout android-3.0_r1.1
使用repo下载not default的project
仔细看看~/ANDOIRD_SOURCE_ROOT/.repo/manifest.xml文件,里面列出了repo需要同步的所有project的信息。特别注意的是有一些project的group属性为“notdefault”。在仅使用repo sync命令时,默认是不下载这些project的。 想要连同下载notdefault的project,那么你在初始化manifest.xml的时候,就要加入-g参数.下表是当前一些project的属性列表。
tools | Packages for dev tools that are not part of the default downloads | notdefault |
device | Packages to build devices supported by AOSP (for instance Nexus devices) | default |
arm | Packages to build ARM system images | default |
mips | Packages to build MIPS system images | default |
x86 | Packages to build x86 system images | default |
linux | cross-compiler used on Linux host | default |
darwin | cross-compiler used on MacOS X host | default |
eclipse | Packages used to build Eclipse | notdefault |
motodev | Motodev plugins | notdefault |
例如你想下载所有default的project和tools这个not default的project,你可以输入:
$ repo init -u https://android.googlesource.com/platform/manifest -g all,-notdefault,tools
-g之后的参数说明:
all下载所有project,包括default和notdefault的
“-”号后跟name,代表不要下name为名字的project。 例如-notdefault表示不要下载notdefault的project
直接跟project的名字,代表需要下载该名字的project
所以示例中的-g all,-notdefault,tools表示下载所有default的project和tools project。
而普通的init初始化:
$ repo init -u https://android.googlesource.com/platform/manifest
就相当于:
$ repo init -u https://android.googlesource.com/platform/manifest -g all,-notdefault
使用Git同步单个文件
在需要同步的那个文件所在文件夹中,输入:
git checkout HEAD <your_file_name>