IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Unbuntu搭建本地Git服务器 -> 正文阅读

[系统运维]Unbuntu搭建本地Git服务器

一、依赖安装

1.安装git-core(git版本控制核心软件)

安装openssh-server和openssh-client是由于git需要通过ssh协议来在服务器与客户端之间传输文件

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

2.安装Python的setuptools和gitosis

由于gitosis的安装需要依赖于python的一些工具,所以我们需要先安装python

sudo apt-get install python-setuptools

# 安装gitosis之前需要初始化一下服务器的git用户信息,这个随便填
ubuntu:~$ git config --global user.name "myname"
ubuntu:~$ git config --global user.email "******@gmail.com"

# 可以通过以下命令获取gitosis版本文件
ubuntu:~$ git clone https://github.com/res0nat0r/gitosis.git
# 进入以上下载好的gitosis版本文件目录安装gitosis
ubuntu:/tmp$ cd gitosis/
ubuntu:/tmp/gitosis$ sudo python setup.py install

二、创建git管理员账户、配置git

1.创建一个账户(git)作为git服务器的管理员,可以管理其他用户的项目权限

ubuntu:/tmp/gitosis$ sudo useradd -m git  //创建git用户
ubuntu:/tmp/gitosis$ sudo passwd git //设置git用户密码

2.创建项目仓库存储点

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

ubuntu:/tmp/gitosis$ sudo mkdir /home/gitrepository
ubuntu:/tmp/gitosis$ sudo chown git:git /home/gitrepository/
ubuntu:/tmp/gitosis$ sudo chmod 700 /home/gitrepository/

# 挂载项目仓库存储点
ubuntu:/tmp/gitosis$ sudo ln -s /home/gitrepository /home/git/repositories

3.服务端配置gitosis

Git管理员应先在Git本地端生成密钥对,管理员将公钥上传到服务端

初始化gitosis并配置权限

# 服务端gitosis安装目录下修改管理员本地端公钥的权限
root@development:/tmp/gitosis# sudo chmod a+r /tmp/id_rsa.pub

# 以管理员的公钥来启动gitosis项目
root@development:/tmp/gitosis# sudo -H -u git gitosis-init < /tmp/id_rsa.pub

# 将会出现:
# Initialized empty Git repository in /home/repo/gitosis-admin.git/
# Reinitialized existing Git repository in /home/repo/gitosis-admin.git/

# root配置post-update权限为755
root@development:/tmp/gitosis# cd /home/git/repositories
root@development:/home/git/repositories# cd gitosis-admin.git/
root@development:/home/git/repositories# sudo chmod 755 /home/repo/gitosis-admin.git/hooks/post-update

此时,作为Git管理员,本地端可以通过git clone git@<server_ip>:gitosis-admin.git拉取该项目,进行全局的配置管理,修改后要推送到远端才能生效

三、为你的项目创建和配置项目仓库

1.建立项目的web-app仓库并完成初始化

root@development:/home/git/repositories/gitosis-admin.git# su - git
git@development:~$ cd /home/repo
git@development:/home/repo$ mkdir web-app.git
git@development:/home/repo$ cd web-app.git
git@development:/home/repo/web-app.git$ git init --bare
git@development:/home/repo/web-app.git$ exit

2.Git管理员通过gitosis-admin.git管理web-app仓库

keydir目录: 统一存放团队每个人的公钥文件,也可以直接在服务端操作

# 上传到git服务器的公钥文件拷贝到keydir并重命名
cp /path/.ssh/id_rsa.pub ./keydir/b@pc1.pub

gitosis.conf文件

[gitosis]

[group gitosis-admin]
members = Administrator@ND--20180918DHM  //Git管理员帐号,多个用户使用空格间隔
writable = gitosis-admin  //这个组的组员对项目gitosis-admin有读写权限

[group hello]
members = Administrator@ND--20180918DHM  //Git管理员帐号,多个用户使用空格间隔
readonly= web-app  //hello组的组员对项目web-app有读写权限

备注:本地端需将配置推送到远端后才会生效。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-03 12:21:05  更:2021-09-03 12:21:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 2:20:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码