帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
服务器资讯 / 香港服务器租用 / 香港VPS租用 / 香港云服务器 / 美国服务器租用 / 台湾服务器租用 / 日本服务器租用 / 官方公告 / 帮助文档
搭建Repo服务器
发布时间:2024-03-07 14:58:10   分类:帮助文档
搭建Repo服务器 1 安装repo 参考:清华大学开源软件镜像站:Git Repo 镜像使用帮助 2 创建manifest仓库 2.1 创建仓库 git init --bare manifest.git 2.2 创建default.xml文件 default.xml文件内容: 提交并推送default.xml文件: 3 创建工程仓库 在文件中有两个示例仓库module1.git和module2.git,需要创建: git init --bare module1.git git init --bare module2.git 3.1 空仓库提交一次(可忽略) 4 Repo使用 4.1 repo初始化 repo init -u ssh://linux@192.168.1.53:/tmp/codes/manifest.git 4.2 同步代码到本地 repo sync 4.3 推送代码到服务器 注意:此时说的是推送代码到服务器,修改代码及提交代码还是使用git工具(git add/commit)。 repo提供了upload命令可以提交代码,但是不是将代码直接提交到git仓,而是提交到Gerrit评审工具,且需要在xml文件中配置,本文没有配置xml,也没有搭建Gerrit评审工具服务,那么就无法使用repo upload命令上传代码,直接使用会报找不到review路径: 但是可以使用repo forall命令: repo forall -pv -c "git push origin master" repo forall命令将‘-c’后边的指令在每一个git仓下去执行一次,可以达到将代码直接推送到服务器的目的。 5 搭建本地repo源码服务器 在repo初始化时,需要联网下载依赖脚本,4.1节使用的是清华大学开源镜像export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo' 地址,本节介绍本地搭建repo源码服务器。 4.1节初始化后,就已经下载了repo源码,其路径是.repo/repo。 5.1 创建git-repo仓库 git init --bare git-repo.git 5.2 添加仓库地址 进入repo源码目录,添加git-repo仓库地址 git remote add local_vm ssh://linux@192.168.1.53:/tmp/codes/git-repo.git 5.3 推送代码到git-repo仓库 注意:必须上传stable分支 5.4 使用本地repo源码服务器初始化repo 5.4.1 方法1:使用‘–repo-url=’选选项 repo init -u ssh://linux@192.168.1.53:/tmp/codes/manifest.git --repo-url=ssh://linux@192.168.1.53:/tmp/codes/git-repo.git 5.4.2 方法2:使用’REPO_URL’环境变量 export REPO_URL='ssh://linux@192.168.1.53:/tmp/codes/git-repo.git' repo init -u ssh://linux@192.168.1.53:/tmp/codes/manifest.git 6 Repo使用扩展:forall 本章主要介绍repo forall命令,方便操作git仓库。 6.1 查看remote repo forall -pv -c 'git remote -v' 6.2 添加备份remote repo同步后只有一个仓库连接,当需要添加多个路径时,可以单个仓库单独添加,也可以使用forall命令批量添加: repo forall -pv -c 'git remote add baiducloud ubuntu@106.12.156.236:/codes/git/$REPO_PROJECT' 说明:REPO_PROJECT是repo的环境变量,代表当前仓库名。 可以将以上命令用alias命令虫命名: alias repo_remote_add="echo repo forall -pv -c \'git remote add baiducloud ubuntu@106.12.156.236:/codes/git/'$'REPO_PROJECT\' | bash" 添加成功后就可以使用repo forall -pv -c "git push baiducloud master"命令推送代码了。 附录(扩展) 仓库关联多个远程仓库 参考:Git仓关联多个远程仓路径.md 本地台式机指令: EBX_COM_GIT_ROOT_URL='ssh://wanghb@192.168.10.120:29418/codes/git/' BAIDU_CLOUT_GIT_ROOT_URL='ssh://ubuntu@192.168.0.110:/codes/git/' alias repo_remote_show="echo repo forall -pv -c \'git remote -v\' | bash" alias repo_remote_push_master_to_origin="echo repo forall -pv -c \'git push origin master:master\' | bash" alias repo_remote_add_origin_ebx_showcmd="echo repo forall -pv -c \'git remote set-url origin --push --add $EBX_COM_GIT_ROOT_URL'$'REPO_PROJECT\'" alias repo_remote_add_origin_baidu_showcmd="echo repo forall -pv -c \'git remote set-url origin --push --add $BAIDU_CLOUT_GIT_ROOT_URL'$'REPO_PROJECT\'" alias repo_remote_add_origin_ebx="echo repo forall -pv -c \'git remote set-url origin --push --add $EBX_COM_GIT_ROOT_URL'$'REPO_PROJECT\' | bash" alias repo_remote_add_origin_baidu="echo repo forall -pv -c \'git remote set-url origin --push --add $BAIDU_CLOUT_GIT_ROOT_URL'$'REPO_PROJECT\' | bash" 仓库备份或迁移 将一个仓库克隆,并将完整仓库(分支和标签)推送到另一个服务器 git clone remote_url --mirror git push new --mirror 多仓库处理脚本: #!/bin/bash WORKROOT_PATH=${PWD} GIT_REMOTE_URL_HEAD="http://192.168.10.120/r/codes/git/" GIT_REMOTE_NEW_URL_HEAD="git@192.168.57.140:git/" RESP_LIST=" bin demo Documents gnc_api_lib libmodbus" for sub_repo in $RESP_LIST do remote_url="$GIT_REMOTE_URL_HEAD$sub_repo.git" remote_new_url="$GIT_REMOTE_NEW_URL_HEAD$sub_repo.git" echo " sub_repo:$sub_repo" echo " remote_url:$remote_url" echo "remote_new_url:$remote_new_url" cd $WORKROOT_PATH # clone git clone $remote_url --mirror || { echo "[line:$LINENO] failed"; exit $LINENO; } cd $sub_repo.git &> /dev/null || { echo "[line:$LINENO] failed"; exit $LINENO; } # 设置远端路径 git remote add new $remote_new_url || { echo "[line:$LINENO] failed"; exit $LINENO; } # 推送代码 git push new --mirror || { echo "[line:$LINENO] failed"; exit $LINENO; } # 完成 echo "push $sub_repo finished " echo "-----------------------------------------------------" echo "" done
香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价