在Ubuntu环境下搭建小型化Git服务器

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

对于我们写代码的人来说,git再熟悉不过了,也必不可少,比如像我,在单位写了点东西,晚上回到家有时还要捯饬一下,但电脑带来带去的也麻烦不是,有了私有的Git库,就方便多了,随时随地都能同步代码,方便的不只一点点。

今天我说来讲讲如何在Ubuntu22.04的环境下搭建我们私有的Git存储库,这里给大家介绍一个库 gitolite ,不是一般的好用啊, 是相当的好用。下面开始介绍它。

安装和设置

服务器要求
  • 任何 UNIX 系统
  • SH
  • git 1.6.6 或更高版本
  • Perl 5.8.8 或更高版本
  • OpenSSH 5.0 或更高版本

用于托管存储库的专用用户 ID(在本文档中,我们假设它是 “git”,但它可以是任何东西;相应地替换)

此用户 ID 当前没有任何基于 SSH 公钥的访问权,理想情况下,此用户 ID 只能通过某些 “su - git” 进行 shell 访问 同一服务器上的其他用户 ID(这确保了 SSH 的混淆!

安装git、ssh服务及ssh终端
sudo apt-get install git  openssh-server openssh-client -y

安装Pythonsetuptoolsgitosis,由于gitosis要依赖python的一些工具,所以要先安装相关依赖:

sudo apt-get install python3 python3-setuptools -y
新建用户
  • 新建只能在控制台下登录的用户

切换为root用户为了获取创建用户的权限

peng@ubuntu:~$ sudo su
  • 添加一个新用户(如用户名为git)
root@ubuntu:/home/peng# useradd git
  • 为该用户设定登录密码
root@ubuntu:/home/peng# passwd git

关于用户的相关命令:

sudo passwd     //可直接设置root的初始密码或者修改当前用户的密码

su root         //录入root密码后 可切换到root用户

su             //录入root密码后 可切换到root用户

su user         //从root用户切换到普通用户不输入密码就可直接切换

安装gitolite

安装步骤

首先,准备 ssh 密钥:

  • 登录服务器上的“git”
  • 确保为空或不存在~/.ssh/authorized_keys
  • 确保工作站中的 SSH 公钥已复制为 $HOME/YourName.pub

接下来,通过运行以下命令安装 gitolite:
安装前的相关准备:

## 备注:这一步不是必须的,只是备注一下,删除已经存在的用户,连同它的home文件一同删除
sudo deluser --remove-home git 

sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git
## 删除密码,不知道什么原因,创建了密码用户为什么切换的时候还要输入密码。只能再删除密码OK
sudo passwd -d git 

git用户创建完后不要有任何操作,要保证:~/.ssh/authorized_keys 这个目录为空或不存在。最好是不存在。

安装:

su - git
git clone https://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin

## 将管理员客户端的id_rsa.pub密钥用scp命令复制到$HOME目录下备用
gitolite setup -pk YourName.pub

## 如果“bin"目录不在”PATH"中,则执行下面这条语句:
$HOME/bin/gitolite setup -pk YourName.pub
添加用户和存储库

请勿在服务器上手动添加新的存储库或用户。Gitolite 用户, 存储库和访问规则是通过对特殊存储库进行更改来维护的 称为“gitolite-admin”并将这些更改推送到服务器。
要管理 gitolite 安装,首先在 工作站(如果您尚未这样做):

git clone git@host:gitolite-admin

通过对gitolite-admin库的操作即可实现对用户权限的控制。

访问规则示例

Gitolite 的访问规则非常强大。下面是一个简单的示例:

repo foo
    RW+                     =   alice
    -   master              =   bob
    -   refs/tags/v[0-9]    =   bob
    RW                      =   bob
    RW  refs/tags/v[0-9]    =   carol
    R                       =   dave

以下是这些示例规则的内容:

  • Alice 可以对任何分支或标签执行任何操作 – 创建、推送、 删除、倒带/覆盖等。
  • bob 可以创建或快进推送任何名称为 不要以“master”开头,并创建任何名称不以“master”开头的标签 以“V”+数字开头。
  • Carol 可以创建名称以“V”+数字开头的标签。
  • Dave可以克隆/获取。
群组权限

Gitolite 允许对用户或存储库进行分组,以方便使用。这是一个创建两组用户的示例:

@staff      =   alice bob carol
@interns    =   ashok

repo secret
    RW      =   @staff

repo foss
    RW+     =   @staff
    RW      =   @interns

组列表累积。以下两行的效果与 上述@staff的早期定义:

@staff      =   alice bob
@staff      =   carol

您还可以在其他组名称中使用组名称:

@all-devs   =   @staff @interns

最后,@all 是一个特殊的组名称,在以下情况下通常很方便使用 您实际上是指“所有存储库”或“所有用户”。

命令

用户可以使用 ssh 远程运行某些命令。运行

ssh git@host help

打印可用命令的列表。
最常用的命令是“info”。所有命令都响应 具有适当信息的“-h”的单个参数。
如果服务器上有 shell,则有更多的命令可用于 你;尝试运行“Gitolite Help”。文章来源地址https://www.toymoban.com/news/detail-833790.html

本地仓库

初始化本地Git仓库(如果尚未初始化)
进入某目录
cd <your dir>
git init
添加远程仓库URL
git remote add origin <远程仓库的URL> // 如 git remote add origin git@myserver:kakaer-react-vite
拉取远程仓库的内容(可选,如果远程仓库不为空)
git pull origin master
将所有本地文件添加到Git仓库
git add .
提交更改
git commit -m "初始提交"
推送更改到远程仓库
git push origin master

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

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

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

相关文章

  • Qt6.5.1+WebRTC学习笔记(十二)环境搭建流媒体服务器(ubuntu22.04+SRS)

    若只是实现一对一通信,仅使用webrtc就足够了。但有时间需要进行多个人的直播会议,当人比较多时,建议使用一个流媒体服务器,笔者使用的是SRS。 这个开源项目资料比较全,笔者仅在此记录下搭建过程 1.操作系统ubuntu22.04 64位 x86架构(建议更新到最新) 2.安装编译器相

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

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

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

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

    2024年02月04日
    浏览(45)
  • Ubuntu 搭建OpenVPN服务器

    VPN直译译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全传输的隧道,OpenVPN无疑是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。它大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库。 OpenVPN通过使用公开密钥(非对称密钥,加密解密使用不同的Key,

    2024年02月05日
    浏览(51)
  • ubuntu搭建HTTP服务器

    1、首先安装apache2工具 apache2安装成功后,我们可以在/var/www/html/目录下看到一个index.html文件。/var文件夹在根目录下,cd到根目录下ls就可以看到 2、重启apache2 接下来,我们只需要重启apache2服务,使用同一局域网(就是连同一个WIFI)的设备登录ubuntu的ip地址就能访问到它的网

    2024年02月16日
    浏览(52)
  • Ubuntu搭建Nodejs服务器

    转自:https://www.8kiz.cn/archives/3228.html 在Ubuntu上搭建Node.js服务器,按照以下步骤进行: 打开终端。 使用包管理器安装Node.js。可以使用以下命令安装Node.js: 安装Node.js后,你可以使用以下命令来检查Node.js版本: 安装npm(Node.js包管理器)。使用以下命令安装npm: 检查npm版本:

    2024年01月25日
    浏览(46)
  • 搭建git服务器

    1.创建linux账户,创建文件 2.特别重要(单独起一行),给文件设权限 3.本地生产密钥并把公钥传输到服务端 4.将公钥添加到文件 5.初始化仓库 6.客户端连接git 其他的,git服务器的默认分支可能叫main不是master;添加密钥的目的是为了免密连接;本文环境客户端mac、服务端ubuntu,

    2024年02月14日
    浏览(47)
  • ubuntu 22 搭建git服务

    创建用户信息 创建git仓库的存储目录、更改文件目录属主为代码仓库的管理者git,只让git用户对此目录有权限。 默认状态下,gitosis会将git仓库放在 git用户的home下,所以我们做一个链接到/home /gitrepository 方法1: 收集所有需要登录的用户的公钥,就是他们自己的 id_rsa.pub 文件

    2024年01月16日
    浏览(35)
  • Ubuntu Server搭建个人服务器

    【参考资料】 Ubuntu官方地址:https://www.ubuntu.com/ Ubuntu论坛地址:https://ubuntuforums.org/ Ubuntu Wiki地址:https://wiki.ubuntu.com/ Ubuntu帮助地址:https://help.ubuntu.com/ Ubuntu邮件列表地址:https://discourse.ubuntu.com/t/mailing-lists/https://ubuntu.com/server/docs) 官网下载:https://releases.ubuntu.com/ 国内镜像

    2023年04月16日
    浏览(40)
  • ubuntu下DHCP服务器搭建

    1、 安装DHCP服务 安装isc-dhcp-server: sudo apt install isc-dhcp-server 2、配置DHCP服务 首先需要知道目标主机的网卡名称: $ ifconfig 由下图可见,网卡名为ens33 接下来配置 /etc/default/isc-dhcp-server 文件, $ sudo vi /etc/default/isc-dhcp-server 将INTERFACES的内容补充为目标主机的网卡名称enp33。 配置

    2024年02月06日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包