GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。

搭建Git服务器需要准备一台运行Linux的机器,这样,通过几条简单的命令就可以完成安装。

假设你已经有sudo权限的用户账号,下面,正式开始安装(服务器为centos)。


1. 安装git

bash
1
yum install git

2. 创建一个git用户,用来运行git服务

bash
1
adduser git

3. Git用户管理

3.1 创建证书登录

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

3.2 使用用户名和密码

使用命令添加用户, 并禁止用户使用shell登录。

bash
1
2
3
4
#添加用户
adduser test -g git -s /bin/git-shell -M
#设置密码
passwd test

4. 初始化Git仓库

先选定一个目录作为Git仓库:

bash
1
2
cd /
mkdir -p /git && cd /git

初始化Git仓库

base
1
git init --bare sample.git

裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后修改权限:

base
1
2
3
4
chown -R git:git sample.git
#使用用户名模式时, 需要设置目录权限
chown -R g+w git sample.git

出于安全考虑,创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

code
1
git:x:1001:1001:,,,:/home/git:/bin/bash

改为

code
1
git:x:1001:1001:,,,:/home/git:/bin/git-shell

5. 服务器搭建完成, 在各自的机器上去使用吧

bash
1
2
3
4
5
6
7
8
9
10
11
12
13
#秘钥模式
git clone git@server:/git/sample.git
#用户名模式
git clone test@server:/git/sample.git
#各用户需要在机器上配置用户名和邮箱
vi .git/config
#添加/修改段落
[User]
name=test
email=test@qq.com