Ubuntn搭建Git +Repo代码管理服务器

Ubuntu18.04下5分钟搞定Repo工具安装(附国内镜像加速配置) 本文详细介绍了在Ubuntu18.04系统下快速安装和配置Repo工具的完整流程,包括环境准备、工具安装、国内镜像加速方案及实战初始化代码仓库等关键步骤。特别提供了清华大学TUNA等国内主流镜像源的配置方法,帮助开发者显著提升代码同步效率。 阅读详情

Ubuntn搭建Git +Repo代码管理服务器

https://blog.youkuaiyun.com/qq_28449863/article/details/79992191

个人分类: Ubuntu Android Linux

准备:

三台电脑A(192.168.1.1),B(192.168.1.2),C(192.168.1.3),其中A作服务器,B作为服务器管理员,C就作为客户端。

实际操作中注意替换ip等相关信息

搭建Git服务器

A:(参考https://blog.youkuaiyun.com/wirror800/article/details/5189564)

1.安装相关工具

sudo apt-get install git-core openssh-server openssh-client

初次使用git,记得配置用户信息

 

 
  1. $ git config --global user.name "John Doe"

  2. $ git config --global user.email johndoe@example.com

git config –global user.name

2.下载安装gitosis

mkdir ~/gitosis_setup

cd ~/ gitosis_setup

git clone https://github.com/res0nat0r/gitosis.git

cd gitosis

sudo python setup.py install

注意:如果python setup.py install失败,需要安装python-setuptools.py 

sudo apt-get install python-setuptools

3.为gitosis创建系统用户

 

 sudo adduser --system --shell /bin/sh --gecos 'git SCM user' --group --disabled-password --home /home/git  git

     这种方法是网上比较常见的方法,创建的是一个禁用密码的git用户,但在使用su命令切换git用户的时候,空密码老是

验证失败,建议大家可以使用下面的方法来创建git用户:

      sudo useradd -m git

 

      sudo password git

之前设置无密码时,clone时总要我输密码。

4.SSH服务设置

 

修改ssh服务端配置文件 /etc/ssh/sshd_config

   Port 22 # 修改成你想要的登陆端口,如2222

   PermitRootLogin no # 禁止root用户登陆

   StrictModes yes # 检查密钥的用户和权限是否正确,默认打开的

   RSAAuthentication yes # 启用 RSA 认证

   PubkeyAuthentication yes # 启用公钥认证

   PasswordAuthentication no # 禁止密码认证,默认是打开的

   ServerKeyBits 1024 # 修改后变为此状态,将ServerKey强度改为1024比特

   PermitEmptyPasswords no # 修改后变为此状态,禁止空密码进行登录

   修改完成后,重启ssh服务:

   sudo /etc/init.d/ssh restart

5.运行gitosis

 

(1)将管理员生成的公钥(即B)上传或拷贝到服务器(即A)上。这里的公钥需要在git服务器管理员(B)下使用ssh-keygen -t rsa命令来创建,这里使用的是直接U盘拷贝的方法,想用scp命令的自行百度。

(2)初始化gitosis

  进入到拷贝过来的id_rsa.pub所在目录:cd /tmp

      sudo chmod 777 id_rsa.pub

      sudo -H -u git gitosis-init < id_rsa.pub

      sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

 至此,gitosis的安装工作已完成,其相关配置可以由管理员(B)来操作,然后再提交到服务器上。

 

B:

1.执行命令ssh-keygen -t rsa,一路回车,最后在~/.ssh目录下生成该用户的秘钥和公钥,需要拷贝的是公钥id_rsa.pub,用于提供给服务器端初始化gitosis.

2.从服务器 克隆gitosis-admin.git

 

新建一个目录mkdir test  作为管理目录

 

    git clone git@192.168.1.1:gitosis-admin.git

 

正常情况下是可以直接clone下来的,实在不行加上绝对路径即git clone git@192.168.1.1:/home/git/repositories/gitosis-admin.git

3.编辑 gitosis.conf(配置gitosis信息)

 

 

 

 cd gitosis-admin

     你将看到以下文件gitosis.conf和keydir/,gitosis.conf是gitosis的配置文件,用于配置用户和权限,keydir/是所有组成员的

公钥。

     vi gitosis.conf, 打开gitosis.conf文件,内容为:

     [group gitosis-admin]
     writable = gitosis-admin

     members =  asus-wh@asus  ##这里的asus-wh@asusr就相当于B的名片,与B的id_rsa.pub中的内容一致,红框中内容

     这个是[group gitosis-admin]管理组的权限,members中的用户名就是刚才上传的公钥里面的用户名。

 

   把内容修改为:

     [group gitosis-admin]
     writable = gitosis-admin
     members = asus-wh@asus
 

     [group apps ]

     writable = apps

     members = asus-wh@asus  c-user 

     这里的c-user其实就是电脑C的名片,同样也需要C的公钥。

     这里定义了一个叫apps 的组,这个apps与后来建立的仓库名对应,授予asus-wh@asus和 c-user两个用户写“apps ”这个repo的权限

     然后push到服务端后,服务器端就立刻生效。

     git commit -a -m "created a new repository"

     git push

     这样就 更新了服务端的权限。

4.在test目录下创建一个apps的repo

     mkdir apps

     cd apps

     git init

5.加点东西测试

  echo "hello" >1.txt (在apps目录下下创建一个内容为hello的1.txt文件)

6. 提交代码

    git remote add origin git@192.168.1.1:apps.git

     git add .

     git commit -am "imitial import"

    git push origin master:refs/heads/master

7.增加成员的公钥到系统中

这里就是把C(192.168.1.3)的公钥加进来拷贝到gitosis-admin/keydir目录下

会发现这里面已经有一个公钥了,就是B的公钥,C生成的公钥是id_rsa.pub,避免重复,建议将其重名为

c-user.pub,这个‘c-user’与之前的它的公钥最后那部分内容相同,跟之前的B的“asus-wh@asus”类似。

 

    cd  gitosis-admin

 

   git add keydir/c-user.pub

修改gitosis.conf,并提交

 

[group apps ]

     writable = apps

     members = asus-wh@asus  c-user  ##这个c-user与前面c的公钥命名要相同

git commit -a -m "Granted new members commit rights to apps"

    git push

 

8.其它成员获取apps的代码

 

git clone git@192.168.1.1:apps.git

C:

只需要ssh-keygen -t rsa 即可,做测试用。

随便创建一个目录,进入

执行git clone git@192.168.1.1:apps.git测试(若提示需要密码输入之前设置git用户的密码即可,这里是git)

 

截止目前git的这部分算是弄完了

 

下面搭建repo 管理 服务器

A:

sudo su git

cd repositories

git init --bare manifest.git

sudo apt-get install git-daemon-sysvinit

 

配置文件 
这个地方前面遇到了一些问题,,然后我又一步步的分析/etc/init.d/git-daemon脚本文件,最后才找到配置的方法. 
配置文件在/etc/default/git-daemon 
打开编辑 
sudo vi /etc/default/git-daemon 
我的配置文件内容如下(后面会具体参数的意义) 
我使用的作为git仓库的目录为/home/git/repositories….你们就改成自己相同的就行了.

 
  1. # Defaults for git-daemon initscript

  2. # sourced by /etc/init.d/git-daemon

  3. # installed at /etc/default/git-daemon by the maintainer scripts

  4.  
  5. #

  6. # This is a POSIX shell fragment

  7. #

  8.  
  9. GIT_DAEMON_ENABLE=true

  10. GIT_DAEMON_USER=git

  11. GIT_DAEMON_DIRECTORY=/home/git/repositories

  12.  
  13. # Additional options that are passed to the Daemon.

  14. GIT_DAEMON_OPTIONS="--export-all --enable=upload-pack --enable=upload-archive --enable=receive-pack --informative-errors"

  15. GIT_DAEMON_BASE_PATH=/home/git/repositories

可以参考这篇文章搭建 
http://blog.youkuaiyun.com/fdl19881/article/details/8679469 
其中 
GIT_DAEMON_ENABLE=true很明显得设置成true值了 
GIT_DAEMON_USER=git 这个就看你想用哪个用户运行git-daemon.一般为了安全都得设置别的用户... 
注意!!设置的这个用户一定得对GIT_DAEMON_BASE_PATH有读,写,执行的所有权限!! 可以用ls -ld git仓库目录,查看为drwx 
如果你的git仓库放在自己的个人目录下即/home/use_name下面的话,那设置成你的用户名准没错. 
GIT_DAEMON_DIRECTORY=”/var/cache/git /home/git/repositories” 这个是设置成目录白名单whitelist!! 如果不设置的话用户在git操作时如git clone,git push等等会出现no such directory. 而在服务器机器上/var/log/syslog中会看到’/home/git/repositories/xxx.git’: not in whitelist 
GIT_DAEMON_OPTIONS 就是设置参数了.如果想上传,且全部导出.就设置–export-all –enable=upload-pack –enable=upload-archive –enable=receive-pack 
注意!如果出现找不到的话,就在/home/git/repositories目录下面的项目仓库目录下touch git-daemon-export-ok..生成一个这个名字的文件即可. 
如果想使用git push功能,那一定要打开–enable=receive-pack 
最后一个 
GIT_DAEMON_BASE_PATH 即设置根目录.比如像我的这个设置. 
那么你在用git clone git://your ip or name/test.git时,git服务器就会查换/home/git/repositories/test.git目录了.

以上设置好了只后,,那么每次开机就会自己启动了. 
还可以使用sudo service git-daemon start|restart|stop控制. sudo /etc/init.d/git-daemon start|restart|stop也可以了.

配置完启动下吧

sudo /etc/init.d/git-daemon start

B:

cd ~

mkdir test

cd test

git clone git@192.168.1.1:manifest.git

###clone这一步能成当然是很好,不成的话试试这个git clone git://192.168.1.1/manifest.git

###我当时也是按着教程来的,但就是clone不下来,但是后面那个可以成功。

cd manifest

新建一个default.xml,内容如下

<manifest>

<remote name="test" fetch="git://192.168.1.1/"/>

<default revision="master" remote="test" sync-j="4"/>

<project path="apps" name="apps"/>

</manifest>

 

 
  1. git add --all

  2.  
  3. git commit -a -m "add default.xml"

  4.  
  5. git push --all

cd ../

git clone git@192.168.1.1:apps.git

你可以修改一下apps里面的内容

比如

echo "Hello Project1" > Hello.txt

 

 

 
  1. git add --all

  2.  
  3. git commit -a -m "add Hello.txt"

  4.  
  5. git push --all

 

最后在test目录下会有这两个文件夹,apps就相当于项目代码

到这基本就完成了搭建

最后去客户机C(192.168.1.3)测试下

C:

 

安装 Repo

mkdir ~/bin
PATH=~/bin:$PATH

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo

chmod a+x ~/bin/repo

修改repo文件内容中的 export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

这一切都是为了让你能够舒适的使用repo

开始刺激的测试:

创建一个测试目录

mkdir test

cd test

repo init -u git://192.168.1.117/manifest.git
repo sync

只需要这两行就会把我们的之前的项目apps同步到test目录下。

OVER!

 

参考:

https://blog.youkuaiyun.com/lb5761311/article/details/47723455

https://blog.youkuaiyun.com/seker_xinjian/article/details/6232475

https://blog.youkuaiyun.com/fdl19881/article/details/8679469

ubuntu/window git 搭建过程 1 sudo apt-get upgrade -y sudo apt install git #安装git git --version #git version 2.17.0 ,git的版本 2.配置用户信息 git config --global user.name "wanghua609" //配置用户名 git config --global user.email "wanghua... 阅读详情

相关推荐

Ubuntu服务器搭建git仓库

本文参考网上多篇资料并经过多次搭建而总结的经验,实现以下功能:1.在ubuntu上搭建私人git仓库并配置2.用shell脚本自动把git仓库里面的代码更新到目标目录3.在webstorm上如何使用搭建时注意语句前用户的不同克隆和上传仓库时可能会出现的路径不识别,本人在多台机器上测试,同个git仓库下,有些机器要输入绝对路径,有些机器要输入相对路径(即只输入仓库名),有些机器需要在Git Bash...

IAmYourFarther的博客 1768

Ubuntu 配置repo环境

下载Android源码的时候,自己的Ubuntu电脑需要初始化repo环境,这样子你就可以使用 repo init -u ssh: repo sync 等命令下载代码, 在工作中,一般公司的代码仓 git-repo 是固定的,首次就需要把repo的初始化环境配置好,比较简单,随笔记录一下。

u012514113的专栏 8862

2022北京高考数学压轴题21题:Python暴力枚举验证k≥7的5种反例

本文探讨了2022北京高考数学压轴题21题的编程解法,通过Python暴力枚举验证k≥7的5种反例。文章详细介绍了m-连续可表数列的定义、问题转化与约束条件,并提供了暴力枚举算法设计和优化技巧,帮助读者理解如何用编程思维解决数学问题。

weixin_33552698的博客 234

ubuntu Repo 安装

ubuntu repo安装配置

yongxiang008的专栏 2605

【Qualcomm高通音频】外部Codec调试流程_ES7243E

一、 调试大纲 调试正式开始之前,想办法获取以下信息:硬件设计原理图/Codec参考驱动代码/FAE联系方式。 1. 从硬件设计原理图,我们要获取到Codec芯片和CPU通过什么接口连接,包括数据传输接口、控制接口、reset和power引脚。 2. Codec参考驱动代码,一般正规的厂商都会提供的,至少也提供对应场景的寄存器配置。 接下来开始正式调试,大致分为以下流程: a. 数据...

crow_ch的博客 8271

LightGBM处理类别特征和缺失值有多省心?一个真实业务数据案例带你上手

本文通过真实电商数据案例,详细解析了LightGBM如何高效处理类别特征和缺失值。相比传统方法,LightGBM仅需一行代码即可自动处理高基数类别特征和缺失值,大幅提升模型训练效率和预测准确度,特别适合业务场景中的脏数据处理。

weixin_30689307的博客 460

Ubuntu安装repo

ubuntu repo的下载以及配置

weixin_47540149的博客 3857

KEPServerEX中,别名映射(Alias Mapping)数据标签重命名机制

目录核心机制应用场景配置步骤技术特性与参考内容的差异KEPServerEX中,别名映射(Alias Mapping) 是一种数据标签重命名机制,主要用于简化复杂标签路径的调用或实现跨系统兼容。其核心逻辑和功能如下:路径抽象 将设备层级结构中的完整标签路径(如 Channel1.Device1.Tag1)映射为简短别名(如 TempSensor1),降低客户端调用的复杂度。动态绑定 别名与实际标签实时关联,数据更新和读写操作通过别名直接传递到底层物理标签,无需修改客户端配置。多对一映射支持多个别名指向

「东哥说MES」 专注于MES制造执行系统,为你拆解核心架构、功能模块及与ERP/PLC的集成逻辑。提供从入门到精通的系列干货、精选行业报告与实用工具,构建你的数字化知识体系,关注我,用实战经验照亮你的数字化之路。 1591

【Ubuntu22.04】repo安装方法

本文介绍了在WSL中安装和配置repo工具的两种方法。通过中国科技大学或清华大学的镜像源,用户可以下载并配置git-repo环境。安装步骤包括克隆仓库、设置权限和配置环境变量。针对国内用户常见的"clone.bundle"访问问题,提供了替换REPO_URL的解决方案,将默认的Google源替换为清华镜像源。验证方法展示了成功安装后的版本信息输出。这些方法解决了国内开发者使用repo工具时遇到的网络访问问题,为基于repo的代码管理提供了便利。

钱塘江渔夫的专栏 2068

网络虚拟化介绍(OVS、DVS)

网络虚拟化概念网络虚拟化就是把网络层的一些功能从硬件中剥离出来,建立新的网络虚拟层;该虚拟层可以接管网络服务和配置,实现网络服务与物理层的解耦,打破物理资源限制;通过网络虚拟层能够在一个物理网络上模拟出多个逻辑网络,并且多用户在逻辑网络上相互隔离,保证网络安全网络虚拟化的特点隔离性:不同租户的流量相互之间不能互访;但是IP/MAC地址都可以独立规划可移动性:虚拟机可以跨二层/三层迁移,甚至可以跨广域网迁移(迁移前后虚拟机Vlan和IP地址都不会发生变化)可扩展性:逻辑网络的规模和数量可扩展。

m0_49864110的博客 1万+

深入Scrapy ItemLoader:打造优雅高效的Python爬虫数据清洗流水线

ItemLoader是 Scrapy 提供的声明式数据加载工具。它的核心理念是:将数据提取(从response中取原始值)和数据清洗/验证(处理空值、格式转换、默认值等)分离开。你可以把它想象成一个工厂流水线:原始零件(selector提取的文本)进入,经过一道道工序(输入处理器),组装成最终产品(Item字段)。首先在items.py中定义清晰的数据结构。使用搭配类型注释(虽然Scrapy自身不强制,但对人和IDE友好)。

2201_76125261的博客 68

ubuntu20.04安装repo

ubuntu20.04系统使用repo

1万+

财务惊呼“不可能”!Python 自动识别 PDF 发票,数据秒级录入系统

电子发票(原生 PDF):这种最爽,文字是可以选中的。我们用 PyPDF2 直接提取文本,速度快,准确率 100%。 纸质扫描/拍照发票:这种是图片。必须上 OCR(光学字符识别)。我们要用百度开源的 PaddleOCR,这是目前中文识别效果最好的开源库之一,吊打早已过气的 Tesseract。

BUG猿的博客 1024

【软件】Ubuntu16.04安装repo全纪录,构建自己的repo仓库,最详细的步骤大全,以及踩坑大全

Ubuntu16.04安装repo全纪录,构建自己的repo仓库,最详细的步骤大全,以及踩坑大全,10种花式坑,你总要踩几种。

YoYo的桃子树 8991

Coze智能体开发:扣子空间制作PPT功能

扣子空间内置了丰富的场景模板,涵盖人文历史、学术分享、研究报告、数据分析等场景,可以满足不同用户的需求。 你只需输入与制作 PPT 相关的提示词,Agent 就能基于这些提示词展示思考的过程,并自动生成完整的 PPT。

王国平的博客 2053

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Ubuntu 20.04 安装repo命令

Ubuntu Linux下载repo

选择的专栏 7674

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

repo的使用步骤(ubuntu系统)

repo的常规使用方法总结

weixin_46942740的博客 4911

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Ubuntu20.04 搭建repo + gitlab的代码管理系统

Ubuntu20.04 搭建repo + gitlab的代码管理系统

weixin_43932857的博客 1万+

Ubuntu开发环境搭建(4)【安装repo】

1.mkdir ~/bin 2.curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 3.chmod a+x ~/bin/repo 4.vim ~/.profile 最后一行添加:export PATH=$PATH:~/bin 5.source ~/.profile 6.rep

u011811113的专栏 531

ubuntu服务器中repo的安装使用

1.新建一个目录/home/workspace/myrepo,cd到这个目录。 2.在这个目录里面执行git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo,会clone下载repo包的git分支。 3.cd 到刚才下载的/home/workspace/myrepo/git-repo。 4.用vim修改repo文件中REP

Android系统开发笔记 4788

ubuntu 20.04 安装 repo

ubuntu20.04版本不能使用 apt-get 去安装repo。创建repo的bin文件,设置环境变量。这样就有可以使用repo 了。

2695

通过国内源在Ubuntu20.0.4安装repo

/.bashrc。

qq_25461777的博客 1203

Ubuntu 下配置 repo 服务器

一直从公司的服务器上用repo sync拉代码,今天得空,也想尝试着自己在本机上搭建个repo server试试。 上网搜了一堆教程。。。好多都是copy的,折腾了半天,终于成功,特此分享。Ubuntu12.04下亲测。 1. 之前写过一篇在本机搭建Git服务器的文章,当时是需要在Server里添加Client的ssh keygen信息,Client才能访问的,这次,借助与git-da

Ritter Liu的专栏 7839
上一篇: ubuntu用git-daemon搭建git服务器和配置方法
下一篇: 搭建支持 Repo 的 Android 源码镜像(Repo 服务器)
nedwons
博客等级 码龄9年 311粉丝 572原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值