【多仓库管理-Repo】
2019-08-20 本文已影响0人
24c41111e47b
使用 google repo 工具一键管理所有仓库,创建/切换分支,删除分支,提交代码
安装
创建目录,修改环境变量
$ mkdir ~/bin
$ PATH=~/bin:$PATH
将 export PATH="$PATH:~/bin" 添加到 ~/.bash_profile 文件中
注意,如果使用的是zsh shell
需要将 ~/bin 替换成 $HOME/bin 添加到 ~/.zshrc 文件中, 然后执行 source ./zshrc
生效
export PATH="$PATH:$HOME/bin"
下载安装repo
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
验证安装成功
$ repo help
使用
Repo 使用 manifest.xml 配置清单管理仓库信息,在当前目录安装repo,会自动在当前目录创建一个 .repo/ 目录,修改 manifest.xml 文件 , 配置工程仓库信息
Init
$ repo init -u https://xxxx/xxx
https://xxxx/xxx 可以是一个远程库或者站点,其根目录必须存在一个default.xml文件
配置default文件
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="origin"
fetch="git@github.com:tomHub/"
review="" />
<default revision="master"
remote="origin"
sync-j="1" />
<project path="./dev_pods/HIIMKit" name="HIIMKit" groups="" />
<project path="./dev_pods/HIUIKit" name="HIUIKit" groups="" />
</manifest>
拉取仓库
$ repo sync
踩坑
1.报 duplicate 错误, 注意path路径是 ./dev_pods/HIIMKit , 不是 ./dev_pods/
2.fetch 地址 只能使用 ssh 和 https,git@有bug不能用
3.如果有多个仓库远端地址,需要实现多个remote,如下:删除default默认origin,进行手动配置
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="origin"
fetch="https://xx.xx.cn/tpc/client/ios/publibrary/"
review="" />
<remote name="origin1"
fetch="https://xx.xx.com/tpc/client/ios/taobao/"
review="" />
<default revision="master"
sync-j="1" />
<project path="./dev_pods/IFImageViewer" name="IFImageViewer" remote="origin"/>
<project path="./dev_pods/IFAccompany" name="IFAccompany" remote="origin"/>
<project path="./dev_pods/IFBaseModel" name="IFBaseModel" remote="origin1"/>
</manifest>