repo 命令速查

repo 命令入门

Android使用Git作为代码管理工具,开发了Gerrit进行代码审核和集中式管理。还开发 repo 命令行工具,对Git部分命令封装,对代码目录下众多 git库组织管理。


提示:repo 常用命令速查


提示:以下是本篇文章正文内容,下面案例可供参考

一、repo 状态查看命令

  • 1.1 生成本地配置文件
    repo manifest -r -o manifest_own.xml

  • 1.2 所有目录生成 名为 “branch_name” 的分支
    repo start branch_name --all

  • **1.3 所有目录 切换 name 分支 **
    repo checkout [brach_name]

  • 1.4 删除指定分支
    repo abandon branch_name #删除指定分支
    repo prune branch_name #删除已经合并分支

  • 1.5 查看本地代码状态
    repo status

  • 1.6 查看提交修改差异
    配置文件与原始代码对比,可直接查看提交log不同点
    repo diffmanifests [absolute path]/commit_orign.xml [absolute path]/commit_id.xml
    注意: xxx.xml 为据对路径

    扫描二维码关注公众号,回复: 16186956 查看本文章
  • 1.7 remote远程分支操作
    repo remote add [...] #远程仓库添加 git
    repo remote rm [...] #远程仓库删除 git

  • 1.8 查看所有分支状态
    repo branch

  • 1.9 查看工作区文件差异
    repo diff
    repo diff patch/dir

  • 1.10 把文件添加到index表中
    repo stage -i [<project>...]

二、repo 代码同步命令

  • 2.1 同步代码
    repo sync #无参数,默认当前路径所有文件夹
    repo sync path_dir #同步指定目录

  • 2.2 代码同步账号异常

log: Enter passphrase for key ‘/home/XXXX/.ssh/id_rsa’:
ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

解决方法:
ex: 旧密码123465 改为无密码
ssh-keygen -p -P 123456 -N '' -f ~/.ssh/id_rsa

  • 2.3 根据 manifest.xml 同步代码
    初始化代码仓库
    repo init -u URL [OPTIONS]
    repo init -u git://172.16.1.31/manifest.git –m android.xml

    manifest.xml 可以指定
    repo init -u git@IP/manifests.git -m rk356x_r_release/manifest_ab.xml
    重定向配置表同步成功后,再同步代码时会依据 manifest_ab.xml 拉取仓库提交点
    注意: xml配置表为 .repo/manifests/ 目录所有repo配置表

  • 2.4 repo 下载
    repo download {project change [patchset]}

  • 2.5 repo 自动更新
    repo selfupdate

三、repo 提交代码命令

  • 3.1 指定源远程提交
    repo push org
  • 3.2 repo 推送代码
    repo upload [--re --cc] {[]... | --replace }

四、repo 执行命令行

  • 4.1 repo 执行命令
    repo forall -c ‘commands’

ex-1: 为代码仓库所有分支更新代码 #精准获取更新

repo forall -c 'if [ "$(git branch -r --list rk/user)" != "" ]; then pwd; git fetch rk user; git pull rk user; fi'

ex-2: 所有代码仓库确认更新推送

repo forall -c 'if [ "$(git branch -r --list rk/user)" != "" ]; then pwd; git fetch rk user; git push rk user; fi'

ex-3: 根据分支名执行对应命令

repo forall -c 'if [ "$(git branch -r --list --points-at=rk628x2)" != "" ]; then pwd; git fetch ; git pull rk user; fi'

ex-4: 执行外部脚本

# 脚本路径为绝对路径
repo forall -c ~/xxx.sh

结语

repo 命令速查欢迎阅读,如有错误请广大读者斧正。

猜你喜欢

转载自blog.csdn.net/weixin_35723192/article/details/124831824