git服务搭建

news/2024/9/19 4:57:27/ 标签: git

git_server_1">纯git server

软件安装

环境:ubuntu16.0.4

  1. 安装Git-Core:sudo apt-get install python-setuptools
  2. 安装openssh-server和openssh-client:sudo apt-get install openssh-server openssh-client
  3. 安装python tool:sudo apt-get install python-setuptools
  4. 安装gitosis:
git clone https://github.com/res0nat0r/gitosis.gitcd gitosis/sudo python setup.py install
添加管理账号
sudo adduser \--system \--shell /bin/sh \--gecos 'git version control' \--group \--disabled-password \--home /home/git \git

如果已有git账户,可以替换成gitmanager

创建链接映射

由于gitosis默认状态下会将仓库放在用户的repositories目录下,例如gitmanager用户的仓库地址默认在
/home/gitmanager/repositories/目录下,这里我们需要创建一个链接映射。让他指向我们前面创建的专门用于存放项目的仓库目录/home/gitrepository。

sudo ln -s /home/gitrepository /home/gitmanager/repositories
初始化管理用户
  1. 拷贝管理用户公钥到/tmp/下,如:
scp ~/.ssh/id_rsa.pub gitmanager@192.168.0.68:/tmp/
  1. 使用拷贝来的公钥初始化gitosis:
sudo -H -u gitmanager gitosis-init < /tmp/id_ras.pub
sudo chmod 755 /home/gitmanager/repositories/gitosis-admin.git/hooks/post-update
配置账号
  1. 验证ssh
ssh gitmanager@192.168.0.68
TY allocation request failed on channel 0
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.Connection to gitserver closed.

说明 Gitosis 认出了该用户的身份,但由于没有运行任何 Git 命令,所以它切断了连接。
2. 克隆gitosis管理仓库:

git clone gitmanager@192.168.0.68:gitosis-admin.git

这会得到一个名为 gitosis-admin 的工作目录,主要由两部分组成:

./gitosis.conf
./keydir

gitosis.conf 文件是用来设置用户、仓库和权限的控制文件。keydir 目录则是保存所有具有访问权限用户公钥的地方— 每人一个。在 keydir 里的文件名(比如上面的 qingkouwei.pub) 会自动从使用 gitosis-init 脚本导入的公钥尾部的描述中获取该名字。

看一下 gitosis.conf 文件的内容,它应该只包含与刚刚克隆的 gitosis-admin 相关的信息:

[gitosis][group gitosis-admin]
members = qingkouwei
writable = gitosis-admin

要创建项目demo,在里面加入:

[group demo]
members = qingkouwei
writable = demo

要为demo项目添加用户user1:

[group demo]
members = qingkouwei user1
writable = demo

并将用户user1的公钥计入到keydir,并且公钥名.pub和members里面的名字对应.
要添加对demo项目只读的用户:

[group demo]
members = qingkouwei user1
writable = demo[group demo]
members = user2
readonly = demo

修改完配置文件和keydir,使用git push到gitosis-admin服务器.即可直接git add remote add suervename gitmanager@192.168.0.68:demo.git,然后直接将本地目录推送到demo仓库,不需要再服务器手动创建demo仓库,gitosis会帮忙自动创建.

常见问题
  1. ERROR:gitosis.serve.main:Repository read access denied
    原因:
    gitosis.conf中的members与keydir中的用户名不一致,如gitosis中的members = foo@bar,但keydir中的公密名却叫foo.pub

解决方法:
使keydir的名称与gitosis中members所指的名称一致。 改为members = foo 或 公密名称改为foo@bar.pub
2. clone时报does not appear to be a git repository

原因:
clone时不能用绝对路径,直接写gitosis-admin.git即可.

参考:https://git-scm.com/book/zh/v1/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-Gitosis

gitlab_110">gitlab服务搭建


http://www.ppmy.cn/news/1520344.html

相关文章

时间格式--cotroller传递时间参数

时间格式–cotroller传递时间参数 我们的前端控制器controller代码&#xff0c; package com.forge.controller;import com.forge.common.Result; import com.forge.entity.Doctor; import com.forge.service.TestService; import lombok.extern.slf4j.Slf4j; import org.spr…

Android使用addr2line分析Native Crash

NDK提供的工具将函数地址解析为具体的函数名和行数才能进一步分析问题。 常用的地址转换工具有addr2line、ndk-stack等&#xff0c;个人比较喜欢addr2line&#xff0c;所以接下来介绍下该工具的基本使用方式 日常使用过程中&#xff0c;只需要关注-C -f -e三个参数即可 // -…

浅析JVM invokedynamic指令和Java Lambda语法|得物技术

一、导语 尽管近年来JDK的版本发布愈发敏捷&#xff0c;当前最新版本号已经20&#xff0c;但是日常使用中&#xff0c;JDK8还是占据了统治地位。 你发任你发&#xff0c;我用Java8&#xff1a;【Jetbrains】2023 开发者生态系统现状 - https://www.jetbrains.com/zh-cn/lp/dev…

都2024年了你还缺客源?十分钟教你如何获取!

你是否还在为如何找到精准的客源而烦恼&#xff1f;别担心&#xff0c;今天我们就来分享一些客源采集方法&#xff0c;让你十分钟内掌握技巧&#xff0c;轻松获取全国各地各行各业的客源。 精准采集客源 1. 拓客工具 专业的拓客工具可以帮助你精准地采集到全国各地的客源信息。…

无人机之遥控器防水性能篇

无人机遥控器的防水性能是评估其耐用性和适应不同环境能力的重要指标。随着无人机技术的不断发展&#xff0c;越来越多的遥控器在设计时融入了防水元素&#xff0c;以满足用户在不同天气条件下的使用需求。以下是对无人机遥控器防水性能的详细探讨&#xff1a; 一、防水等级与…

Redis 入门到精通1

一、String&#xff08;字符串&#xff09; 特点&#xff1a; 最基本的数据类型&#xff0c;二进制安全&#xff0c;可以存储任何数据&#xff0c;比如图片或者序列化的对象。一个 key 对应一个 value。 常用命令及示例&#xff1a; SET key value&#xff1a;设置一个键值对。…

实战项目:俄罗斯方块(六)

文章目录 &#x1f34a;自我介绍&#x1f34a;图像界面绘制界面绘制界面显示代码运行结果 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏&#xff08;一键四连&#xff09;哦~ &#x1f34a;自我介绍 Hello,大家好&#xff0c;我是小珑也…

C语言典型例题60

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题4.1 统计全单位人员的平均工资。单位的人数是不固定的&#xff0c;工资数从键盘先后输入&#xff0c;当输入-1时&#xff0c;表示输入结束(前面输入的都是有效数字)。 代码&#xff1a; //《C程序设计教程&…

论文《Improving your graph neural networks:A High-Frequency Booster》笔记

【CLAR 2022 ICDMW】作者指出&#xff0c;现有的GNN模型主要关注于消息传递机制&#xff0c;但这些模型往往受限于低通滤波器的局限&#xff0c;导致在多层堆叠时性能下降。为了解决这个问题&#xff0c;论文提出了一种新的正则化方法&#xff0c;称为补全拉普拉斯正则化&#…

三防平板:定制化服务的趋势——以智慧医疗为例

随着科技的飞速发展&#xff0c;三防平板产品凭借其坚固耐用、适应复杂环境的特性&#xff0c;在众多行业领域中崭露头角。而在AI迅速增长的今天&#xff0c;AI智慧医疗成为了一个备受关注的热点&#xff0c;它不仅推动了医疗行业的数字化转型&#xff0c;也为三防平板产品的定…

linux 硬件 arm架构 汇编语言

1.cortex 1. Cortex-A 低功耗 消费类 ARM Cortex-A 系列处理器是一种广泛应用于 移动设备、嵌入式系统和物联网的高效能处理器&#xff0c;因其低功耗和高性能的特点而受到青睐。 2. Cortex-R 实时性 Cortex-R处理器针对高性能实时应用&#xff0c;例如硬盘控制器&#xff08;或…

挂载5T大容量外接硬盘到ubuntu

挂载5T大容量外接硬盘到ubuntu S1&#xff1a;查看硬盘 使用 $ sudo fdisk -l找到对应盘&#xff0c;例如下图所示 /dev/sdc S2: 创建分区 使用 $ sudo fdisk /dev/sdc对上硬盘进行创建分区&#xff1b;可以依次使用以下指令 m &#xff1a;查看命令&#xff1b; g &…

SQL 中 LIKE 和 REGEXP 的相同点与不同点解析

SQL 中 LIKE 和 REGEXP 的相同点与不同点解析 在数据库查询中&#xff0c;字符串匹配是非常常见的需求&#xff0c;而 SQL 提供了多种方式来实现这一功能&#xff0c;其中 LIKE 和 REGEXP 是两种常用的操作符。虽然它们都能用于字符串匹配&#xff0c;但它们在工作原理、匹配精…

前端面试:webSocket如何兼容低浏览器?

WebSocket 是一种用于全双工通信的协议&#xff0c;它可以在客户端和服务器之间建立持久的连接。尽管现代浏览器广泛支持 WebSocket&#xff0c;但对于一些低版本浏览器或不支持 WebSocket 的环境&#xff0c;我们需要考虑兼容性问题。以下是在低版本浏览器上兼容 WebSocket 的…

Hive Tutorial For Beginners

Hive Tutorial For Beginners 一、Hive历史&#xff08;History of Hive&#xff09; Facebook 在面对日益增长的大数据时&#xff0c;选择了 Hadoop 作为解决方案。 但问题在于&#xff0c;许多用户并不熟悉 Java 或其他编程语言&#xff0c;这使得使用 Hadoop 的 MapReduc…

EtherCAT 转 ModbusTCP 网关

设备简介 本产品是 EtherCAT 和 Modbus TCP 网关&#xff0c;使用数据映射方式工作。 本产品在 EtherCAT 侧作为 EtherCAT 从站&#xff0c;接 TwinCAT 、 CodeSYS 、 PLC等&#xff1b;在 ModbusTCP 侧做为 ModbusTCP 主站&#xff08; Client &#xff09;或从站…

揭秘推荐算法:深度学习如何读懂你的购物心思

时间&#xff1a;2024年09月03日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频&#xff1a;https://xima.tv/1_L8HH40?_sonic0 希望大家帮个忙&#xff01;如果大家有工作机会&#xff0c;希望帮小蒋内推一下&#xff0c…

python判断语句(三)

下一篇持续更新中… 如有错误欢迎指正&#xff01;&#xff01;&#xff01; 文章目录 前言学习内容 布尔类型和比较运算符布尔类型比较运算符总结 if语句的基本格式if语句的注意点总结案例 if else语句注意点总结案例 if elif else语句注意点总结案例 判断语句的嵌套语法格式…

【mysql】mysql目录结构和源码和mysql基础练习

mysql目录结构和源码的说明&#xff1a; 也就是之前说四个位置有提到的两个位置&#xff0c; 1软件安装位置bin 把bin目录加入环境变量就可以直接在命令行调用&#xff0c; "***\MySQL\MySQL Installer for Windows\bin" 2还有一个数据库文件的安装位置 &#…

PyTorch 2.4 import 报错问题解决

最近在新环境中安装了PyTorch 2.4版本&#xff0c;简单测试了import,发现直接报错&#xff1a; import torchA module that was compiled using NumPy 1.x cannot be run in NumPy 2.1.0 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be co…