git 服务端安装

1, 安装基础软件库,

#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

2, 由于git目前还无法使用yum方式安装,只有源码编译安装了。

下载安装 git 的步骤:

# wget http://www.kernel.org/pub/software/scm/git/git-2.1.0.tar.gz
# tar xzf git-2.1.0.tar.gz
# cd git-2.1.0
# configure --prefix=/usr/local/git -with-tcltk
# make
# make install
# git --version
如能显示版本号,则说明安装已经正确了

3,如果出现错误,则可以操作一下步骤后,再进行安装

执行:
yum install perl-ExtUtils-MakeMaker package
yum install gettext-devel

######################################################

4, 创建一个git用户,用来运行git服务:

  adduser git

5, 创建证书登录:可以通过ssh-keygen来生成

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

6, 初始化Git仓库:

先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:

$ sudo git init --bare sample.git
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:

$ sudo chown -R git:git sample.git

7, 禁用shell登录:

出于安全考虑,创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成

8, 克隆远程仓库:

现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
剩下的推送就简单了。

 9, 补充。 一切就绪后,开始服务端自动部署的设置

git clone project.git project-name
cd project-name
git checkout xxxbranch

Server hooks设置, cd到hooks目录

cp post-receive.sample post-receive 

编辑post-receive

cd /path/to/project || exit
unset GIT_DIR
git pull

这样当客户端push时,就会自动部署

 一点要留意,若使用root账户复制post-receive文件,会出现权限问题,

再次使用

chown git:git post-receive

设置权限

同时还有服务端被部署目录也要设置权限., 首先进入web目录

chown -R git:git ./.git

chown -R git:git ./sample

感觉git的权限控制太严格了.




原文地址:https://www.cnblogs.com/maomaochong123/p/5936511.html