2018-10-02 · Tools

搭建 Git 服务器

对于不想开发源代码的个人和小团队来说,搭建一个 Git 服务器是一个不错的选择。

nginx-logo

第一步当然是安装 git

yum install -y git

这样安装的 git 的版本不是最新的

git --version

输出

git version 1.8.3.1

根据 git-scm 的介绍升级 2.x 版本可以使用源码安装 或者 IUS 等三方仓库安装

源码安装

安装依赖包和工具包

yum -y groupinstall "Development Tools"

yum -y install gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel

下载并解压源码 release

wget https://github.com/git/git/archive/v2.19.0.tar.gz

tar zxvf v2.19.0.tar.gz

生成 Makefile 、编译、安装

cd v2.19.0/

./configure --prefix=/usr/local

make && make install 

IUS 安装

细节参考 官方文档

curl https://setup.ius.io | sh

yum remove -y git | yum -y install git2u

配置 git

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

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

创建 git 用户,并禁用 shell 登陆

创建 git 用户

adduser git

passwd git

编辑 /etc/passwd 文件来禁用 shell 登陆,找到一下信息:

git:x:1001:1001::/home/git:/bin/bash

改为

git:x:1001:1001::/home/git:/bin/git-shell

初始化仓库

git init --bare project.git

chown -R git:git project.git

现在就可以 clone 刚刚创建的远程仓库了

git clone git@ip:/repo/project.git

公钥管理

将每个人的公钥搜集起来放在服务器的 /home/git/.ssh/authorized_keys 文件中,一行一条公钥。


参考文档:

Download for Linux and Unix
IUS Community Project
How To Install Git on CentOS 7