前言:本文将介绍centos7上的git server 安装与设置。本教程适用于初级前端,并想要了解git server的搭建步骤的可以看看。
安装Open SSH Server
首先我们得需要安装Open SSH Server 确保centos7可以被远程访问。
[root@localhost ~]# yum list installed | grep openssh-server
[root@localhost ~]# yum install openssh-server
[root@localhost ~]# yum list installed | grep openssh-server
开启远程访问
需要修改配置文件 /etc/ssh/sshd_config
# vi /etc/ssh/sshd_config
# i
#[esc]
# :wq
将文件中的选项修改为如下的形式。
启动SSH服务
使用如下指令对SSH服务进行停止、启动、重启等操作
# sudo service sshd stop
# sudo service sshd start
# sudo service sshd restart
# ps -e | grep sshd
进程信息存在表示SSH服务成功运行
安装Git Server
使用yum安装git
# yum install git
建立Git账户
创建一个单独的git账户用以进行Git操作
# adduser git
# passwd git
限制git账户登录
# vi /etc/passwd
原始值:git:x:1000:1000::/home/git:/bin/bash
修改为:git:x:1000:1000::/home/git:/usr/bin/git-shell
开启SSH RSA 验证
因为关闭git账户的远程登录,因此需要启动ssh的rsa验证以确保可以使用该种方式连接到git server ,修改如下配置
# vi /etc/ssh/sshd_config
原始值: #RSAAuthentication yes 修改后值:RSAAuthentication yes
原始值: #PubkeyAuthentication yes 修改后值:PubkeyAuthentication yes
并确保 “AuthorizedKeysFile” 的值为 “.ssh/authorized_keys”
# sudo service sshd restart
创建git中央仓库
再/home/git目录下创建一个空的仓库(一般以.git结尾),裸仓库是没有工作区的,纯粹为了共享
# cd /home/git
# git init --bare [name].git
# mkdir .ssh
# cd .ssh
# touch authorized_keys
#打开客户端中的 “id_rsa.pub” 文件,将该文件中的全部内容拷贝至服务端中的 “authorized_keys” 文件中。
# chown -R git.git [name].git
# chown -R git.git /home/git/.ssh/
使用git hook
中央仓库其实只是一个中介,如果你想要把中央仓库的代码关联到你域名挂载下的文件夹时候,就需要使用到git的钩子来实现,当客户端提交代码到中央仓库,中央仓库能将代码也推送到另外的一个文件夹下面
1、在服务器初始化一个本地仓库,这个仓库就是你虚拟主机指定的文件夹,也就是你输入域名后会访问到的那个文件夹
cd /usr/www #进入你虚拟主机的挂载目录
git init #初始化git
git remote add origin /home/git/[name].git #添加远程仓库到隔壁的中央仓库(滑稽)
chown -R git:git /usr/www #修改服务器本地仓库的用户属组
2、在中央仓库中设置钩子
进入远程仓库的钩子目录
# cd /home/git/test.git/hooks
touch post-receive
vi post-receive
#!/bin/sh
unset GIT_DIR
DeployPath=/var/www #这里的目录是你自己虚拟主机的目录
cd $DeployPath
git add . -A && git stash
git pull origin master
chmod +x post-receive
客户端 验证 Git Server
回到客户端,在 Git Bash 中使用如下指令从服务端中拷贝创建的 Git 仓库。
# git clone git@[server ip]:/home/git/[name].git
结束了~~~
参考地址:
https://www.jianshu.com/p/2f3093791d91 介绍如何配置git server
https://segmentfault.com/a/1190000009673544 介绍git钩子的使用