搭建Repo服务器

这篇具有很好参考价值的文章主要介绍了搭建Repo服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 安装repo

参考:清华大学开源软件镜像站:Git Repo 镜像使用帮助
本地repo搭建,工具&环境,服务器
本地repo搭建,工具&环境,服务器

2 创建manifest仓库

2.1 创建仓库

git init --bare manifest.git

本地repo搭建,工具&环境,服务器

2.2 创建default.xml文件

default.xml文件内容:

<?xml version="1.0" encoding="UTF-8" ?>
<manifest>
    <remote
        name="origin"
        fetch="ssh://linux@192.168.1.53:/tmp/codes"
    />
    <default
        remote="origin"
        revision="master"
        sync-j="4"
    />
    <project path="module1" name="module1.git"/>
    <project path="module2" name="module2.git"/>
</manifest>

本地repo搭建,工具&amp;环境,服务器
提交并推送default.xml文件:
本地repo搭建,工具&amp;环境,服务器

3 创建工程仓库

在文件中有两个示例仓库module1.git和module2.git,需要创建:

git init --bare module1.git
git init --bare module2.git

本地repo搭建,工具&amp;环境,服务器

3.1 空仓库提交一次(可忽略)

本地repo搭建,工具&amp;环境,服务器
本地repo搭建,工具&amp;环境,服务器

4 Repo使用

4.1 repo初始化

repo init -u ssh://linux@192.168.1.53:/tmp/codes/manifest.git

本地repo搭建,工具&amp;环境,服务器

4.2 同步代码到本地

repo sync

本地repo搭建,工具&amp;环境,服务器

4.3 推送代码到服务器

注意:此时说的是推送代码到服务器,修改代码及提交代码还是使用git工具(git add/commit)。

repo提供了upload命令可以提交代码,但是不是将代码直接提交到git仓,而是提交到Gerrit评审工具,且需要在xml文件中配置,本文没有配置xml,也没有搭建Gerrit评审工具服务,那么就无法使用repo upload命令上传代码,直接使用会报找不到review路径:
本地repo搭建,工具&amp;环境,服务器
但是可以使用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

本地repo搭建,工具&amp;环境,服务器

5.2 添加仓库地址

进入repo源码目录,添加git-repo仓库地址

git remote add local_vm ssh://linux@192.168.1.53:/tmp/codes/git-repo.git

本地repo搭建,工具&amp;环境,服务器

5.3 推送代码到git-repo仓库

本地repo搭建,工具&amp;环境,服务器
注意:必须上传stable分支
本地repo搭建,工具&amp;环境,服务器
本地repo搭建,工具&amp;环境,服务器

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

本地repo搭建,工具&amp;环境,服务器

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

本地repo搭建,工具&amp;环境,服务器

6 Repo使用扩展:forall

本章主要介绍repo forall命令,方便操作git仓库。

6.1 查看remote

repo forall -pv -c 'git remote -v'

本地repo搭建,工具&amp;环境,服务器

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搭建,工具&amp;环境,服务器

添加成功后就可以使用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

多仓库处理脚本:文章来源地址https://www.toymoban.com/news/detail-678713.html

#!/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

到了这里,关于搭建Repo服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 快速搭建本地服务器

    首先下载node.js,下载官网显示的版本就行 下载完进行安装,安装默认下一步就行,无须点击其他选项。 安装好后win+r输入cmd打开命令行模式 在命令行中接着输入命令 这里你那里安装会报错,也可能卡主不动,这样就要自行csdn在搜一下了,蛮好解决的 创建一个文件夹当做自己

    2024年02月12日
    浏览(45)
  • 搭建本地开发服务器

    :::warning 注意 在上一个案例的基础上添加本地开发服务器,请保留上个案例的代码。如需要请查看 Webpack 使用。 ::: 搭建本地开发服务器这一个环节是非常有必要的,我们不可能每次修改源代码就重新打包一次。这样的操作是不是太繁琐了。所以本地开发服务器的作用就能体

    2024年02月13日
    浏览(43)
  • Git repo工具使用教程

    参考文档: git repo工具详细使用教程——彻底学会Android repo的使用git-repo大魔王爱学习的博客-CSDN博客 Manifest Format – git-repo: a git wrapper from Alibaba repo是Google开发的用于管理Android版本库的一个工具,repo是使用Python对git进行了一定的封装,并不是用于取代git,它简化了对多个G

    2024年02月06日
    浏览(38)
  • Mac 搭建本地服务器

    MacOS 自带Apatch 服务器。所以我这里选择Apatch服务器搭建 在safari中输入 http://127.0.0.1/ ,如果页面出现 it works,则代表访问成功。 启动服务器 重启 关闭 Apache服务器的文件地址: /libary/webserver/documents/ 准备一个html文件 添加到Apache服务器的地址下 在Safari 中输入 http://127.0.0.1/t

    2024年02月09日
    浏览(43)
  • 十七、Webpack搭建本地服务器

    目前我们开发的代码,为了运行需要有两个操作: 操作一:npm run build,编译相关的代码; 操作二:通过live server或者直接通过浏览器,打开index.html代码,查看效果; 这个过程经常操作会影响我们的开发效率,我们希望可以做到,当文件发生变化时,可以自动的完成 编译 和

    2024年02月09日
    浏览(44)
  • 【Git】本地git服务器搭建

    到目前为止已经有办法使用 Git 来完成日常工作。 然而,为了使用 Git 协作功能,你还需要有远程的 Git 仓库。 尽管在技术上可以从个人仓库进行推送(push)和拉取(pull)来修改内容,但不鼓励使用这种方法,因为一不留心就很容易弄混其他人的进度。 此外,你希望你的合

    2024年02月04日
    浏览(43)
  • 本地MQTT服务器搭建(EMQX)

    下载地址:EMQ (emqx.com) 打开官网后,选择右边的免费试用按钮 然后单击EMQX Enterprise标签,然后选择下面的EMQX开源版,选择开源版的系统平台为Windows,单击免费下载。 在新页面下单击立即下载 将下载的emqx-5.1.6-windows-amd64.zip解压出来,解压目录不能存在中文、空格、特殊字符

    2024年02月09日
    浏览(44)
  • 搭建Git本地服务器及其使用

    GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。 搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过

    2024年02月13日
    浏览(46)
  • windows环境(本地端以及华为云服务器)搭建HTTP服务器

    最近在调试一款中移物联网推出的NB-IOT物联网模组,模组有个功能是需要实现固件在线下载,那么模组更新固件的时候可以通过服务器端通过HTTP协议进行下载,因此首先需要搭建一个HTTP服务器。 本篇文章从本地电脑端以及华为云服务器端分别进行了HTTP服务器的搭建,并实现

    2024年02月15日
    浏览(46)
  • gitblit 搭建本地的 git 服务器

    目录 一、简介 二、准备工作 1.安装Java 2.下载gitblit 3.创建资料目录 三、修改配置 1.git.repositoriesFolder 2.server.httpPort 3.server.httpBindInterface 4.installService.cmd 5.uninstallService.cmd 四、gitblit图标显示异常 结束 Gitblit是一个用于管理,查看和提供Git存储库的开源纯Java堆栈。它主要设计为

    2024年04月16日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包