这是一个使用 repo 工具结合 Gitee 开发多仓项目的示例
创建一个组织,建议以项目名作为组织名
将项目下的仓库全部上传到此组织下
配置 manifest
<?xml version="1.0" encoding="UTF-8"?> <manifest> <!-- 假设刚刚创建的组织路径名为 repo-example --> <remote name="origin" fetch="git@gitee.com:repo-example/" /> <default revision="master" remote="origin" /> <!-- 假设此项目仅由以下两个仓库组成 --> <project path="first" name="first" /> <project path="second" name="second" /> </manifest>
# 下载 repo 引导脚本 curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo # 赋予脚本可执行权限 chmod a+x /usr/local/bin/repo # 安装 repo 依赖 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests # 如果不想执行这步,直接编辑 /usr/local/bin/repo 文件,将第一行的 python 改成 python3 即可 ln -s /usr/bin/python3 /usr/bin/python # 验证脚本执行正常 repo help
mkdir ~/repo-example && cd ~/repo-example repo init -u git@gitee.com:repo-example/manifest.git repo sync
cd ~/repo-example # 配置个人令牌,用于调用 Gitee 接口,令牌获取地址:https://gitee.com/personal_access_tokens repo config --global repo.token {xxxxxxxxxxx} # 是否推送自动创建 PR,类似 gerrit review repo config repo.pullrequest {True/False}
cd ~/repo-example repo start dev --all # 切换开发分支 # 编码 cd ~/repo-example/first && touch BLANK cd ~/repo-example/second && touch BLANK # 提交 cd ~/repo-example repo forall -c "git add -A && git commit -m 'finish'" # 推送到自己 fork 的仓库下,并自动向主仓创建 PR # 如果没有事前 Fork,此操作会自动调用 Gitee api 接口将主仓 Fork 到自己的空间下,但不会自动创建 PR repo push -p
repo 提供了丰富的命令和参数,它的运用远远不仅上述如此简单。探索 repo help,进行更深入的使用吧!