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