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 为据对路径 -
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 命令速查欢迎阅读,如有错误请广大读者斧正。