搭建自己的git服务器

自己搭建git服务器主要有两个目的:

  • 可用来做一个团队的私有仓库,自己的服务器安全可控
  • 让代码自动同步到服务器,而不是每次用ftp,比较方便

系统 centos6 国外vps

步骤:

1. 安装git

一般服务器都自带git。如果嫌版本低,可以选择卸载重装。

2. 创建用户

groupadd git
adduser git -g git

3.创建authorized_keys文件

cd /home/git
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
cd /home
chown -R git:git git

4. 客户端创建密钥并上传

ssh-keygen -t rsa -C "your_email"

该命令会产生两个文件: id_rsa对应私钥,id_rsa.pub对应公钥。

将id_rsa.pub中的内容写到服务器的authorized_keys文件中。

如果有多个客户端,那么在authorized_keys文件中,一行保存一个客户端的公钥。

5. 创建git仓库

为了方便管理,所有的git仓库都置于同一目录下,假设为/data/gitrepo ,

cd /data
mkdir gitrepo
chown git:git gitrepo

接下来,创建我们的第一个git仓库:sample.git ,
服务器上的Git仓库通常都以.git结尾

cd gitrepo
git init --bare sample.git
// 修改所属用户
chown -R git:git sample.git

6. 克隆仓库到本地

$ git clone git@your-ip:/data/gitrepo/sample.git

7.禁用shell登录

安全性考虑git用户只提供git服务,不让登录到系统。

编辑/etc/passwd文件 找到类似下面的一行:

git:x:503:503::/home/git:/bin/bash

改为

git:x:503:503::/home/git:/sbin/nologin

8. 设置自动更新钩子

设置当有客户端push过来自动更新到指定目录(站点目录)

cd /data/girepo/sample.git/hooks
cp post-receive.sample post-receive
vi post-receive
//添加以下这句到文件
git --work-tree=/data/wwwroot/your-site-dir checkout -f
//保存
:wq

(完)

标签:GIT 发布于:2019-11-10 20:11:12