repo

init

repo init -u url [ -b (分支) -m .xml # 指定版本 ]

在该目录下创建一个.repo文件夹
其余所有repo指令都必须在.repo的父目录或父目录的子目录下。

sync同步其他文件

repo sync 
repo sync -d # 将指定项目切换回清单修订版本。如果项目当前属于某个主题分支,但临时需要清单修订版本,则此选项会有所帮助。
repo sync -s # 同步到当前清单中的 manifest-server 元素指定的一个已知良好版本。
repo sync -f # 即使某个项目同步失败,也继续同步其他项目。
repo sync -j8 # 8个并行线程执行命令,加速处理。
repo sync -j20 --force-sync # 强制同步,即使本地仓库有冲突或修改,也会覆盖本地状态。

upload提交更改

repo upload # 搜索所有项目中的更改进行上传

diff

repo diff #  显示提交与工作树之间的明显更改

forall

遍历xml中的每一个git仓库,对所有git仓库执行相同的git指令。

repo forall -j30 -p -v -e \

        -i  "path" \

        -c "git checkout . && git clean -dfx && git reset --hard" || repo sync -j20 --force-sync
        
# 并行执行的线程数为30
# -p 输出中显示仓库路径前缀
# -v 显示详细输出
# -e 某个仓库的命令执行失败,repo forall会立刻退出并返回错误
# -i 只对指定的仓库执行命令
# -c 指定在每个目标仓库中执行的 Git 命令,命令依次运行
# ||表示如果前面的 repo forall 命令失败(返回非零状态码),则执行后面的 repo sync 命令。
# --force-sync: 强制同步,即使本地仓库有冲突或修改,也会覆盖本地状态。
posted @ 2025-07-23 11:08  伍壹丷  阅读(69)  评论(0)    收藏  举报