repo 命令大全详解(第十七篇 repo smartsync)

repo smartsync 命令用于智能同步指定的项目,结合了多种更新策略。

参数分类及解释

基本命令

repo smartsync:用于智能同步项目。

1. 帮助和基本选项

  • -h, --help
    • 显示帮助信息并退出。
    • 示例:repo smartsync --help

2. 作业管理

  • -j JOBS, --jobs=JOBS

    • 设置同时运行的作业数量,默认为 0,表示使用所有可用 CPU 核心。
    • 示例:repo smartsync -j 4
  • --jobs-network=JOBS

    • 设置并行网络作业的数量,默认是 --jobs 或 1。
    • 示例:repo smartsync --jobs-network=2
  • --jobs-checkout=JOBS

    • 设置本地检出的并行作业数量,默认为 8。
    • 示例:repo smartsync --jobs-checkout=3

3. 同步行为

  • --fail-fast

    • 在遇到第一个错误时停止同步。
    • 示例:repo smartsync --fail-fast
  • --force-sync

    • 强制覆盖现有的 Git 目录,可能导致数据丢失。
    • 示例:repo smartsync --force-sync
  • --force-checkout

    • 强制检出,丢弃未提交的修改,可能导致数据丢失。
    • 示例:repo smartsync --force-checkout
  • --force-remove-dirty

    • 强制删除具有未提交修改的项目。
    • 示例:repo smartsync --force-remove-dirty
  • --rebase

    • 对本地提交进行变基,即使它们未被发布。
    • 示例:repo smartsync --rebase
  • -l, --local-only

    • 仅更新本地工作树,不进行网络抓取。
    • 示例:repo smartsync -l
  • -n, --network-only

    • 仅执行网络抓取,不更新工作树。
    • 示例:repo smartsync -n

4. 清单管理

  • -m NAME.xml, --manifest-name=NAME.xml

    • 使用指定的临时清单进行同步。
    • 示例:repo smartsync -m my_manifest.xml
  • --no-manifest-update, --nmu

    • 使用现有的清单,不更新到最新版本。
    • 示例:repo smartsync --no-manifest-update
  • -d, --detach

    • 将项目分离回清单版本。
    • 示例:repo smartsync -d

5. 分支管理

  • -c, --current-branch

    • 仅抓取当前分支。
    • 示例:repo smartsync -c
  • --no-current-branch

    • 抓取所有分支。
    • 示例:repo smartsync --no-current-branch

6. 服务器选项

  • -u MANIFEST_SERVER_USERNAME

    • 清单服务器的用户名。
    • 示例:repo smartsync -u myusername
  • -p MANIFEST_SERVER_PASSWORD

    • 清单服务器的密码。
    • 示例:repo smartsync -p mypassword

7. 子模块管理

  • --fetch-submodules

    • 从服务器抓取子模块。
    • 示例:repo smartsync --fetch-submodules
  • --use-superproject

    • 使用清单的超级项目进行同步,隐含 -c
    • 示例:repo smartsync --use-superproject
  • --no-use-superproject

    • 禁用使用清单的超级项目。
    • 示例:repo smartsync --no-use-superproject

8. 标签管理

  • --tags

    • 抓取标签。
    • 示例:repo smartsync --tags
  • --no-tags

    • 默认不抓取标签。
    • 示例:repo smartsync --no-tags

9. 优化和清理

  • --optimized-fetch

    • 仅在修订版本不存在本地时抓取固定到 SHA1 的项目。
    • 示例:repo smartsync --optimized-fetch
  • --retry-fetches=RETRY_FETCHES

    • 对暂时错误重试抓取的次数。
    • 示例:repo smartsync --retry-fetches=3
  • --prune

    • 删除远程不再存在的引用(默认)。
    • 示例:repo smartsync --prune
  • --no-prune

    • 不删除远程不再存在的引用。
    • 示例:repo smartsync --no-prune
相关推荐
林政硕(Cohen0415)12 天前
Repo管理
git·嵌入式·repo
橘长_21 天前
repo仓库转移到自己本地的git服务器
服务器·git·repo·正点原子
bob_young2 个月前
repo 命令大全详解(第十一篇 repo init)
repo
江上清风山间明月3 个月前
repo 查看指定日期内,哪些仓库有修改,具体的修改详情
git·repo·记录·日期·修改·作者·详情
江上清风山间明月3 个月前
git标签、repo如何打tag
git·repo·标签·tag·打tag·打标签
Sean_woo19984 个月前
【笔记】泰山派环境配置遇到E: Unable to locate package repo
笔记·repo·泰山派
江上清风山间明月5 个月前
repo中的default.xml文件project name为什么一样?
repo·default.xml·project name·相同
Ramboooooooo10 个月前
CentOS 中 YUM 源一键更新
linux·阿里云·centos·repo·yum