还是2017年实操过在阿里云ecs上搭建git服务端,最近更新了ecs操作系统为centos7.6,需要重新搭建git服务。实际又搜索操作了一遍,在此记录一下大体过程,便于后续参考。
操作步骤
一、安装git最新版本
网址参考:https://www.cnblogs.com/citta/p/9735039.html
-
下载最新版本
先从官方网站https://mirrors.edge.kernel.org/pub/software/scm/git 下载当前最新版本,写本文时,最新版本是git-2.23.0.tar.xz,使用命令“wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.23.0.tar.xz”下载。 -
解压,配置,安装
tar -xf git-2.23.0.tar.xz
cd git-2.23.0
./configure --prefix=/usr/local
make
sudo make install -
验证结果
运行命令“git --version”,结果如下:
git version 2.23.0
二、配置git帐户及权限
参考网址:https://blog.csdn.net/w252064/article/details/82691343
1. 创建一个git用户组和用户,用来运行git服务。
# groupadd git
# useradd git -g git
# passwd git #参数是用户名
# su - git //切换git用户
2. 搭建git服务时,不要使用配置path变量限制git shell登录功能(即不要按照前面参考网址说明的调整/etc/passwd),否则可能会导致git服务无法使用,下面是进行git email和用户名的配置。
git config --global user.email “cfh0081@163.com”
git config --global user.name “cfh0081”
三、配置用户访问权限
-
客户端生成用于ssh访问的公私钥,具体操作可参考网址:https://jingyan.baidu.com/article/a65957f4e91ccf24e77f9b11.html
-
添加公钥到ssh授权文件中
复制客户端的*.pub中的内容添加至git仓库所在服务器的git用户文件夹下的/home/git/.ssh/authorized_keys文件中,可使用命令# $ cat /tmp/id_rsa.john.pub >> /home/git/.ssh/authorized_keys,将公钥内容追加至授权文件中。cat /tmp/id_rsa.john.pub >> /home/git/.ssh/authorized_keys
四、创建仓库
为了方便管理,建议将所有的git仓库都置于同一目录下,假设为/home/git/repo,前面已切换至git帐户,相应操作如下:
cd /home/git
mkdir repo
chown git:git repo # 如果前面两步操作是以root用户登录操作的,则需要增加该步骤。
接下来,创建我们的第一个git仓库:sample.git,
cd repo
git init --bare sample.git
如果前面是以root用户登录进行的操作,则需要把仓库所属用户改为git。
chown -R git:git sample.git
五、客户端使用git服务
客户端获取服务端git仓库命令如下,格式为“git clone git@域名或ip地址:/home/git/repo/仓库名称.git”,下面是具体例子:
git clone git@122.76.127.110:/home/git/repo/sample.git
六、其他遇到问题说明
1. 安装git出现无C编译器问题解决
报错信息:
configure: error: no acceptable C compiler found in $PATH
安装编译器:
[root@ali]# yum -y install gcc
2. 依赖zlib库缺失
报错信息:
[root@ali git-2.29.2]# make
GIT_VERSION = 2.29.2
* new build flags
CC fuzz-commit-graph.o
In file included from object-store.h:4:0,
from commit-graph.h:5,
from fuzz-commit-graph.c:1:
cache.h:21:18: fatal error: zlib.h: No such file or directory
#include <zlib.h>
^
compilation terminated.
make: *** [fuzz-commit-graph.o] Error 1
安装缺失库:
[root@ali git-2.29.2]# yum -y install zlib-devel