您的位置:首页 > 编程语言

Repo同步代码

2018-01-08 10:51 651 查看
Repo是Google开发的,使用Python编写的,调用Git的脚本。

为什么要存在Repo?

答:假设一个项目,包含多个(假设上百个)仓库。使用原生的Git命令,难以同时管理项目下众多的仓库。为了统一管理项目,需要在Git上在封装一层接口。

Repo获取项目代码(Linux)

初始化Manifest(其实,就是包含项目中所有仓库git地址的配置文件),有趣的可以在项目目录(就是敲下面命令的路径下),对应的.repo目录中中查看manifest.xml内容。

# usage: repo init -u ManifestAddress -b BranchName(Default:Master)
repo init -u xxxxx/xxxxx/manifest -b master


获取代码

# 获取整个项目代码
repo sync
# 获取指定仓库代码
# xxx/xxx 为指定仓库的路径(可在manifest中查看)
repo sync xxx/xxx


本地开启master分支(Repo初始化项目时,Clone下的代码是没有分支的)

请注意,repo start 切换分支时的特性

# 开启指定仓库
repo start master xxx/xxx
# 开启项目中全部仓库
repo start master --all

# repo start 封装了 git checkout -b
# 区别:git checkout -b 当前所在分支基础上,创建特性分支
# 区别:repo start 在清单指定分支基础上,创建特性分支(创建的特性分支,以清单指定分支为基础)

repo start branchName  xxx/xxx
# 等价于
cd xxx/xxx
git checkout -b branchName
# 假设清单指定分支是master
git branch --set-upstream-to=origin/master branchName


使用Repo统一切换,项目(所有仓库)分支

repo init -u xxx/xxx/manifest -b BranchName
repo sync # 同步


本地代码改动时,出现”xxx/xxx: discarding x commist”,使用下述命令reset后,再同步

repo forall -c git reset --hard
repo init -u xxx/xxx/manifest -b BranchName
repo sync
repo start BranchName --all
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git repo 脚本