自己搭建git服务器主要有两个目的:
系统 centos6 国外vps
步骤:
一般服务器都自带git。如果嫌版本低,可以选择卸载重装。
groupadd git
adduser git -g git
cd /home/git
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
cd /home
chown -R git:git git
ssh-keygen -t rsa -C "your_email"
该命令会产生两个文件: id_rsa对应私钥,id_rsa.pub对应公钥。
将id_rsa.pub中的内容写到服务器的authorized_keys文件中。
如果有多个客户端,那么在authorized_keys文件中,一行保存一个客户端的公钥。
为了方便管理,所有的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
$ git clone git@your-ip:/data/gitrepo/sample.git
安全性考虑git用户只提供git服务,不让登录到系统。
编辑/etc/passwd文件 找到类似下面的一行:
git:x:503:503::/home/git:/bin/bash
改为
git:x:503:503::/home/git:/sbin/nologin
设置当有客户端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
(完)