搭建自己的repo代码服务器(一)

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

目录

一、环境

二、gitolite搭建

1.服务器端操作

2.客户端操作

总结


一、环境

安装 openssh-server 用于远程登录, git 用于管理工程, keychain 用于公私钥管理工具

sudo apt-get install openssh-server git keychain

二、gitolite搭建

1.服务器端操作

        (以服务器地址:10.10.10.206为例进行说明)

         1. 创建git账户:

sudo adduser --system --shell /bin/bash --group git 
sudo passwd git
   2. 以“git”账户登录服务器
   3. 确保“~/.ssh/authorized_keys”为空或者不存在
   4. 拷贝服务器管理员的公钥到“~/YourName.pub” 
   5. 下载gitolite源码
git clone https://github.com/sitaramc/gitolite.git
6. 在git用户目录下创建bin目录
mkdir -p ~/bin
7. 执行下列命令安装gitolite,不同版本安装方法不同,请参考源码中的文档:
gitolite/install -to ~/bin8. 设置管理员
~/bin/gitolite setup -pk YourName.pub

2.客户端操作

1. 克隆服务器的gitolite管理仓库:

git clone ssh://git@10.10.10.206/gitolite-admin.git

2. 添加用户公钥到gitolite目录下

cp username.pub keydir/username.pub

3. 添加管理员用户

vi conf/gitolite.conf

@admin = admin1 admin2 admin3

repo gitolite-admin

RW+ = @admin

3.repo镜像搭建

服务器端操作

1. 用git账号登入服务器
2. 在根目录下载repo工具

git clone ssh://git@www.rockchip.com.cn:2222/repo-release/tools/repo


3. 新建RK_Android11_mirror目录

mkdir RK_Android11_mirror

4. 进入 RK_Android11_mirror目录

cd RK_Android11_mirror

5. 下载RK Android11 SDK镜像

~/repo/repo init --repo-url=ssh://git@www.rockchip.com.cn:2222/repo- release/tools/repo.git -u ssh://git@www.rockchip.com.cn:2222/Android_R/manifests.git -m Android11.xml -- mirror

6. 创建仓库组权限

.repo/repo/repo list -n > android_r.conf sed -i 's/^/@android_r = RK_Android11_mirror\/&/g' android_r.conf

客户端操作

1. 将服务器端的android_r.conf拷贝到客户端的·gitolite-admin/conf/·下

2. 添加组权限

vi conf/android_r.conf

@usergroup = user1 user2 user3

repo @android_r

R = @usergroup

RW+ = @admin

vi conf/gitolite.conf

include "android_r.conf"

5. 新建自己的manifests仓库

vi conf/android_r.conf

@android_r = Android_R/manifests_xxx

客户端操作

1. 在客户端下载manifests_xxx仓库
在其他客户端电脑上下载manifests_xxx.git仓库

git clone ssh://git@10.10.10.206/Android_R/manifests_xxx.git

2. 在客户端下载原始manifests仓库

git clone ssh://git@10.10.10.206/Android_R/manifests.git

3. 提交manifest.xml文件到新建的manifest_xxx仓库中
将原始manifests下面的文件拷贝到的manifests_xxx内

cd manifests_xxx

cp -rf manifests/*.xml manifests_xxx/

查看拷贝文件

git status

Android11.xml

Android11_Express.xml

default.xml

include/partner_gms_express.xml

include/partner_modules_express.xml

include/rk3288_repository.xml

include/rk3326_repository.xml

include/rk3399_repository.xml

include/rk356x_repository.xml

include/rk_checkout_from_aosp.xml

include/rk_modules_repository.xml

remote.xml

remove_r.xml

本地提交

git add -A

git commit -m "init xxx"

 push到远程分支

git push origin master:master

7. 创建自己的代码下载链接
在根目录下下载repo工具

git clone ssh://git@www.rockchip.com.cn:2222/repo-release/tools/repo

按以上步骤操作后,自己的代码下载链接如下

mkdir Android11

cd Android11

~/repo/repo init -u ssh://git@10.10.10.206/Android_R/manifests_xxx.git -m Android11.xml

其中:
//10.10.10.206 是你的服务器端地址
通过以上步骤就可以完成自己的repo服务器搭建了,可以把自己的代码服务器链接分享给同事们一起工
作了。

代码管理

通过以上步骤搭建代码服务器后大部分代码仓库都使用RK默认的分支,如果有仓库需要修改自己的代码,可以参考下面的步骤进行操作。

切换自己的代码分支


1. 进入需要修改的代码仓库,以kernel目录为例进行说明

cd kernel

2. 切换一个本地分支

git checkout remotes/m/master -b xxx_branch

3. push xxx_branch分支到远程服务器

git push rk29 xxx_branch:xxx_branch

其中 rk29 是remote 可以直接tab键自动补全
4. 进入.repo/manifests目录修改manifest里面指定的分支
进入.repo/manifests目录通过grep kernel可以找到kernel仓库对应的manifest的位置

cd .repo/manifests

--- a/include/rk_modules_repository.xml

+++ b/include/rk_modules_repository.xml

@@ -10,7 +10,7 @@

<project path="hardware/rockchip/libgraphicpolicy"

name="rk/hardware/rk29/libgraphicpolicy" remote="rk

revision="refs/tags/android-11.0-mid-rkr8" />

<project path="hardware/rockchip/libhwjpeg"

name="rk/hardware/rk29/libhwjpeg" remote="rk" revision="refs/tags/android-11.0-mid-rkr8"/> <project path="u-boot" name="rk/u-boot" remote="rk"

revision="refs/tags/android-11.0-mid-rkr8"/>

- <project path="kernel" name="rk/kernel" remote="rk29" revision="refs/tags/android-11.0-mid-rkr8"/>

+ <project path="kernel" name="rk/kernel" remote="rk29" revision="xxx_branch"/>

<project path="bootable/recovery/rkupdate" name="platform/bootable/recovery/rk_update" remote="rk"

revision="refs/tags/android-11.0-mid-rkr8"/>

<project path="bootable/recovery/rkutility" name="platform/bootable/recovery/rk_utility" remote="rk"revision="refs/tags/android-11.0-mid-rkr8"/>

5. 提交修改的manifest到远程分支

git add include/rk_modules_repository.xml

git commit -m "change kernel branch on xxx_branch"

git push origin default:master

提交manifests仓库后,其他同事就可以同步到你们自己的分支的kernel代码了。

代码修改提交


按上面步骤切换完分支后就可以在自己分支上提交自己的修改了, 提交直接push到xxx_branch分支上面。

同步RK的代码

1. 同步RK代码需要在服务器端进行sync操作

cd RK_Android11_mirror

.repo/repo/repo sync -c


2. 客户端合并RK对manifests的修改
下载RK原始manifests仓库

git clone //10.10.10.206/wlq/test/manifests.git

使用对比工具对比manifests(RK原始)和manifests_xxx(自己的),将RK修改的差异部分合并到自己的仓库中(主要修改tag,增加删除仓库等)。

对比确认后将修改push到manifests_xxx上。
这步也可以确认自己修改了哪些仓库,在下一步中将进行修改仓库的合并。

3. 有自己切分支的目录需要手动把RK的修改merge到自己的分支上面
以kernel为例:

查看当前指向的远程分支

wlq@wlq:~/home1/test2/kernel$ git branch -av

* android-11.0-mid-rkr7 0bde59fad73a ARM: configs: rockchip_defconfig enable ION_CMA_HEAP

xxx_branch 0bde59fad73a ARM: configs: rockchip_defconfig enable ION_CMA_HEAP

remotes/m/master -> rk29/xxx_branch

remotes/rk29/xxx_branch 0bde59fad73a ARM: configs: rockchip_defconfig enable ION_CMA_HEAP

可以看到当前指向的是: remotes/m/master -> rk29/xxx_branch

创建本地分支(从自己的远程分支上切)

git checkout remotes/m/xxx_branch -b local_xxx_branch

确认当前RK发布的最新TAG        

wlq@wlq:~/home1/test2/kernel$ git tag | grep rkr

android-10.0-mid-rkr1

android-10.0-mid-rkr10

android-10.0-mid-rkr11

android-10.0-mid-rkr13

android-10.0-mid-rkr2

android-10.0-mid-rkr3

android-10.0-mid-rkr4

android-10.0-mid-rkr5

android-10.0-mid-rkr6

android-10.0-mid-rkr7

android-10.0-mid-rkr8

android-10.0-mid-rkr9

android-11.0-ebook-rkr1

android-11.0-ebook-rkr2

android-11.0-ebook-rkr3

android-11.0-ebook-rkr4

android-11.0-ebook-rkr5

android-11.0-ebook-rkr6

android-11.0-mid-rkr1

android-11.0-mid-rkr2

android-11.0-mid-rkr3

android-11.0-mid-rkr4

android-11.0-mid-rkr4.1

android-11.0-mid-rkr5

android-11.0-mid-rkr6

android-11.0-mid-rkr7

android-11.0-mid-rkr7-prev

android-11.0-mid-rkr8

可以看到当前最新的Android11的tag是 android-11.0-mid-rkr8
合并 android-11.0-mid-rkr8 到本地分支

git merge android-11.0-mid-rkr8

查看是否有冲突,如果有冲突先解决冲突,没有冲突在执行下一步
 push合并完的代码到远程分支

git push rk29 local_xxx_branch:xxx_branch

其他切分的目录都按这个方式进行合并提交即可


总结

未完待续文章来源地址https://www.toymoban.com/news/detail-457404.html

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

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

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

相关文章

  • 【gitlab部署】centos8安装gitlab(搭建属于自己的代码服务器)

    在团队开发过程中,想要拥有高效的开发效率,选择一个好的 代码开发工具 是必不可少的。搭建git服务器有两种方式 ● github(国外的,很卡)或者gitee(国内的,网速还可以,可以设置项目为私有,防止其他人可见) ● 通过gitlab搭建自己的git服务器 要求 ● gitlab十分吃内存,建议

    2024年02月11日
    浏览(52)
  • Linux系列:开发环境搭建:ubuntu图形界面安装samba服务器、SSH使用、mount -t cifs 挂载windows共享目录方法与问题解决

    samba一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。 通常linux开发环境要和windows平台进行文件交互,使用samba进行文件夹共享,这样会给开发带来很大的便利性,samba安装很简单,下面介绍一下在ubunt

    2024年02月21日
    浏览(72)
  • 搭建自己个人服务器

    很高兴能够跟大家分享我写的这篇文章! 搭建自己的个人服务器主要分为三步,分别为1、通过腾讯云或者阿里云、华为云等购买云服务器,2、申请域名并解析,3、开发自己程序或者前后端之类的部署在服务器 可以选择购买云服务器或者轻量应用服务器,两者区别是前者相

    2024年02月05日
    浏览(74)
  • 自己搭建mqtt服务器

            前言:网上资料大部分都是使用的云服务,我是采用自己搭建的服务器来进行试验的,接下来将记录过程。 云服务器有很多种网上也有很多教学在这里不进行过多的解释了,我实验的时候采用的阿里云国内的服务器这里以后还会进行介绍。         本实验主要

    2024年02月03日
    浏览(54)
  • 搭建自己的Git服务器

    环境 服务端 :Ubuntu 22.04 客户端 :Win11_x64 前提条件 :需要确保在Windows机器上能够ping通Ubuntu服务器, 并且服务端与客户端均已安装了Git软件 服务端上的配置操作 以Ubuntu服务器作为Git服务端的运行环境,并方便后期免密推送及管理代码的需求,需要先安装OpenSSH及创建git专属用

    2024年02月15日
    浏览(67)
  • 自己搭建一个KMS服务器

    本文仅适合个人用户,商业用户使用该程序可能会面临法律风险!!! 建议有经济能力的读者支持正版。 知周所众,Windows和Office不是免费软件。如果是新购买的品牌机,则应该预装有正版的Windows家庭版,部分用户还附赠Office。但是,我相信我的读者一大部分用的是自己组装

    2024年02月07日
    浏览(63)
  • 如何从Github拿到代码在云服务器跑起来--算力云从零搭建和配置GPU模型环境

    写在前面: 在服务器的Linux系统中复制使用Ctrl+shift+C,粘贴使用Ctrl+shift+V 1.首先拿到一份代码先研究他的readme.md也就是说明文档(至关重要),根据说明文档的详细程度可以间接判断代码能否跑起来,或者代码是否靠谱,不然花很多时间研究才发现代码没有可行性。以下我的代

    2024年04月13日
    浏览(55)
  • 如何搭建自己的git服务器

    GitHub,Gitee 想来大家都用过,我们的代码就是托管在这些平台上的。因此,你可能好奇为什么我们不自己搭建一个 git 呢服务器?下面,就开始教大家如何一步步搭建自己的 git 服务器(试验成功的那一刻还是很让人激动的)。 我自己的虚拟机是 centOS7 的,首先肯定要安装

    2024年02月05日
    浏览(52)
  • FTP服务器的搭建与文件目录详解

    文件传输协议FTP(File Transfer FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。 FTP协议 FTP是TCP/IP的协议簇协议之一,其主要功能是借助网络实现远距离主机间的文件传输。 Vsftpd (Very Secure FTP)是linux系统的常用软件。 1.1 Vsftpd的服务器的安装与启动 V

    2024年02月16日
    浏览(41)
  • 搭建自己的个人服务器(网络配置篇)

    1、确保你的服务器已经正确地配置好网络,可以连接到互联网。 2、确认服务器上的防火墙已经打开对于你所需要访问的端口的访问权限,比如常用的 HTTP 服务所使用的端口 80 或者 HTTPS 服务所使用的端口 443。 3、在你的路由器上进行端口映射。在路由器上找到端口映射的选

    2024年02月09日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包