manifest 文件
文章目录
manifest文件介绍
<?xml version="1.0" encoding="UTF-8"?><manifest><remotefetch="ssh://[email protected]/learn-repo"name="origin"review="http://xxx.xxx.xxx:8080"/><remotefetch="https://github.com"name="github"alias="origin"/><defaultremote="origin"revision="master"sync-j="4"/><projectname="build"path="build"><linkfiledest="build.sh"src="build.sh"/></project><projectname="docs"path="docs"><copyfiledest="README.md"src="README.md"/></project><projectname="third_party/openssl"path="third_party/openssl"revision="OpenSSL_1_1_1l"/><projectname="curl/curl"path="third_party/curl"remote="github"/><projectname="src"path="src"revision="release"/></manifest>
- remote元素: remote元素可以有多个,用于存在多个git远程服务器的情况。 - fetch:使用此remote的所有项目的Git URL前缀。 每个项目的名称都附加到此前缀以形成用于克隆项目的实际 URL。如果使用此remote的所有项目的前缀和manifest仓库前置一致的话,可以使用…代替。- name:此清单文件唯一的短名称。此处指定的名称用作每个项目的 .git/config 中的远程名称,因此可自动用于 git fetch、git remote、git pull 和 git push 等命令。- review:通过repo upload将评论上传到的 Gerrit 服务器的主机名。 该属性是可选的; 如果未指定,则repo upload将不起作用。- alias:该属性可以省略,当指定了该属性时,可以覆盖name属性设置每个项目的.git/config中的远程名称。不同remote元素的alias属性可以相同,比如不同remote元素的alias属性可以都是origin。- groups属性:所有的projects都属于group ”all“,如果你只想下载部分project,你可以在初始化的时候加入-g选型。
repo init -u https://android.googlesource.com/platform/manifest -g all,-notdefault,tools
#示例中的-g all,-notdefault,tools表示下载所有default的project和tools project。
- default元素 default元素只能有一个。 - remote:project部分不单独指定remote的话就使用default部分的。- revision:project部分不单独指定revision的话就使用default部分的。- sync-j:同步时(执行repo sync命令时)使用的并行作业数- sync_c:如果设置为true,则只同步指定的分支(revision 属性指定),而不是所有的ref内容- sync_s:如果设置为true,则会同步git的子项目
- project元素 该部分定义了项目代码由哪些子仓库组成 - name:相对于remote部分fetch指定的前缀的相对路径- path:把代码下载下来后在本地的相对于当前路径的相对路径- revision:是指下载下来的代码要checkout到哪个revision上,这里的revision可以是commit id、branch name、tag name,本质上都是commit id。default.xml中通常用branch name做revision,可以下载到并且checkout出该branch上最新的代码,标签和/或commit id在理论上应该有效,但尚未经过广泛测试。如果revision用commit id的话,那后面必须跟上upstream,upstream的值是个branch name。revision部分如果省略的话,就等于使用default部分定义的revision。- remote:前面定义的远程元素的名称。如果未提供,则使用默认元素提供的值。
- copyfile元素 project元素的子元素,每个元素描述了一对 src-dest 文件对。同步时(即执行repo sync命令时)src文件会被拷贝到dest。通常会被用于 README 或 Makefile 或其他构建脚本。 - dest:是相对于当前目录(执行repo init和repo sync命令的目录)的路径- src:是相对于project path的相对路径
- linkfile元素 与copyfile类似,只不过不是拷贝,而是建立软连接。
清单库manifest.git例子
<?xml version="1.0" encoding="UTF-8"?><manifest><remotename="server"alias="origin"fetch="https://www.sample.com/git/xxx"/><remotename="home"alias="origin"fetch="http://server:3000/xxx"/><defaultremote="home"revision="master"sync-j="4"sync_s="ture"sync_c="false"/><projectname="build_docs"path="build_docs"></project><projectname="pc_sdk"path="pc_sdk"></project></manifest>
touch default.xml
git init
gitadd default.xml
git commit -m"first commit"git remote add origin http://server:3000/xxx.git
git push -u origin master
标签:
git
本文转载自: https://blog.csdn.net/fedorayang/article/details/142447353
版权归原作者 yangnianlin123 所有, 如有侵权,请联系我们删除。
版权归原作者 yangnianlin123 所有, 如有侵权,请联系我们删除。