repo用法
时间:2023-05-09 16:07:01
Repo是谷歌用Python脚本的调用git一个脚本可以管理多个脚本git库。
//初始化
repo init -u xxx/manifest.git -b xxx -m xxx --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable
repo使用相当于批处理文件repo脚本可以一次下载多个脚本Git 仓库内容,避免多次git clone,并且可以更好的管理和使用。
用 repo 拿的时候其实是 .git 统会放在 .repo 内,外.git都只是link。
repo脚本有以下可用参数:
--repo-url=URL repo 工具本身的 git 库地址:git://android.git.kernel.org/tools/repo.git
--repo-branch=REVISION 使用repo版本库,即repo git库的分支或里程碑名称。caf-stable
--no-repo-verify 设置不正确repo严格验证里程碑签名。
-u(--manifest-url) 设置清单库Git服务器地址。
-b(--manifest-branch) 检测清单库的具体分支。
--mirror 只在repo第一次初始化时,建立本地镜像
-m(--manifest-name) 指定列表库中的列表为有效列表文件。默认情况下default.xml。
--no-tags don't fetch tags
repo 可以执行命令参数的含义repo help command(sync)来看。
//下载代码
repo sync -j16 --no-tags
//只下载QNX project,其他project不下载
repo sync -j16 --no-tags QNX
repo sync 的参数:
-j:开启多线程同步操作将加速sync命令的执行速度。默认情况下,使用4个线程并发进sync。
-c,–current-branch:只同步指定远程分支。默认情况下,sync它将同步所有远程分支。当远程分支较多时,下载代码量较大。使用此参数可以缩短下载时间,节省本地磁盘空间。
-d,–detach:脱离当前的本地分支,切换到manifest.xml在实际操作中,这个参数非常有用,当我们第一次sync代码完成后,通常会切换到dev开发分支。如果不使用这个参数。sync,则会触发本地的dev分支与manifest合并设定的远程分支很可能会导致sync失败。
-f,–force-broken:当有git库sync失败了,不中断整个同步操作,继续同步其他操作git库。
–no-clone-bundle:在向服务器提出请求时,内容分发网络将被用于尽快响应速度(CDN,Content Delivery Network)。还将通过同步操作CDN连接到最近的服务器并使用它HTTP/HTTPS的$URL/clone.bundle本地初始化git库,clone.bundle实际上是远程的git图书馆的镜像,通过HTTP直接下载,更好地利用网络带宽,加快下载速度。
///代码下载后,本地有一个.repo目录
drwxrwxrwx 7 wxd wxd 4096年6月 709:27.repo/
cd .repo
drwxrwxrwx 6 wxd wxd 4096 6月 14:06 manifests/drwxrwxrwx 10 wxd wxd 4096年6月 709:27manifests.git/lrwxrwxrwx 1 wxd wxd 42 6月 709:27manifest.xml -> manifests/qisi/QS_HQCOS_HQX_1.2.1_MAIN.xml*-rwxrwxrwx 1 wxd wxd 17591 6月 project.list*drwxrwxrwx 10 wxd wxd 4096 6月 1 14:39 project-objects/drwxrwxrwx 32 wxd wxd 4096年6月 14:52projects/drwxrwxrwx 7 wxd wxd 4096 6月 14:06 repo/-rwxrwxrwx 1 wxd wxd 44214 6月 .repo_fetchtimes.json*
cd projects
drwxrwxrwx 5 wxd wxd 4096年6月 15:16 AMSS.git/drwxrwxrwx 5 wxd wxd 4096年6月 15:17 art.git/drwxrwxrwx 5 wxd wxd 4096年6月 15:17 bionic.git/drwxrwxrwx 4 wxd wxd 4096年6月 14:39bootable/drwxrwxrwx 5 wxd wxd 4096年6月 14:38 build/drwxrwxrwx 3 wxd wxd 4096年6月 14:08 compatibility/drwxrwxrwx 5 wxd wxd 4096年6月 15:17 cts.git/drwxrwxrwx 5 wxd wxd 4096年6月 15:17 dalvik.git/drwxrwxrwx 3 wxd wxd 4096年6月 14:35 developers/drwxrwxrwx 5 wxd wxd 4096年6月 15:17 development.git/drwxrwxrwx 9 wxd wxd 4096年6月 14:22device/drwxrwxrwx 3 wxd wxd 4096年6月 14:26 disregard/drwxrwxrwx 312 wxd wxd 1288年6月 14:56external/drwxrwxrwx 16 wxd wxd 4096年6月 14:40 frameworks/drwxrwxrwx 10 wxd wxd 4096年6月 14:45 hardware/drwxrwxrwx 7 wxd wxd 4096年6月 14:44kernel/drwxrwxrwx 5 wxd wxd 4096年6月 15:18 libcore.git/drwxrwxrwx 5 wxd wxd 4096年6月 15:18 libnativehelper.git/drwxrwxrwx 9 wxd wxd 4096年6月 14:16 packages/drwxrwxrwx 5 wxd wxd 4096年6月 15:18 pdk.git/drwxrwxrwx 5 wxd wxd 4096年6月 15:18 platform_testing.git/drwxrwxrwx 34 wxd wxd 4096年6月 14:50 prebuilts/drwxrwxrwx 5 wxd wxd 4096年6月 15:17 QNX.git/drwxrwxrwx 5 wxd wxd 4096年6月 15:21sdk.git/drwxrwxrwx 5 wxd wxd 4096年6月 15:21shortcut-fe.git/drwxrwxrwx 40 wxd wxd 4096年6月 14:45 system/drwxrwxrwx 8 wxd wxd 4096年6月 14:22test/drwxrwxrwx 3 wxd wxd 4096年6月 14:13 toolchain/drwxrwxrwx 20 wxd wxd 4096年6月 14:45 tools/drwxrwxrwx 5 wxd wxd 4096 6月 1 14:39 vendor/
repo status //查看状态
repo branch //查看分支
repo manifest //查看清单文件
repo version //查看repo版本号
repo abandon branchName //删除分支
//撤销本地修改
repo forall -vc "git reset --hard"
//上传修改的代码
repo update[ project-list ]