Linux git服务器

1.yum安装Git服务器
[root@git ~]# cd src/
[root@git src]# wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
[root@git src]# rpm -ivh epel-release-5-4.noarch.rpm
Preparing...                ########################################### [100%]
    package epel-release-5-4.noarch is already installed
[root@git ~]# yum list
[root@git ~]# yum install -y git

2.创建一个git用户,用来运行git服务
[root@git ~]# adduser git

3.创建客户端登录证书
略;
4.初始化Git仓库
注,先选定一个目录作为Git仓库,这里是/var/git/project.git。
[root@git ~]# cd /var/git/
[root@git git]# git init --bare project.git
[root@git project.git]# ls
branches  config  description  HEAD  hooks  index  info  objects  refs

执行以上命令 Git命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
[root@git git]# chown -R git.git project.git
[root@git git]# ls -l
总计 4
drwxr-xr-x 7 git git 4096 05-09 13:50 project.git

5.禁用shell登录
注,出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
[root@git ~]# cat /etc/passwd | grep git
git:x:1001:1001:git version control:/home/git:/bin/bash
改为:
[root@git ~]# vim /etc/passwd
git:x:1001:1001:git version control:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
6.克隆远程仓库
注,现在可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

7.实现自动同步到站点目录(www)
自动同步功能用到的是 git 的钩子功能,服务器端:进入裸仓库
cd /var/git/project.git 
cd hooks //这里我们创建post-receive文件 
vim post-receive //在该文件里输入以下内容 
#!/bin/bash 
git --work-tree=/var/www/html checkout -f //保存退出后,将该文件用户及用户组都设置成git 
chown git:git post-receive //由于该文件其实就是一个shell文件,我们还应该为其设置可执行权限 
chmod +x post-receive
现在我们可以在本地计算机中修改index.php文件,或者添加一个新文件,提交到远程仓库,然后到/var/www/html下面,看看有没有我们刚才提交的文件。
如果你在Git推送的工程中发现推送成功 但是在html目录下并没有自己的代码,这时候你可要注意了:这是由于文件夹的权限的原因造成的! 假设你的www目录的所属的用户组为root,你可以将你的git用户加入这个组;并给git添加写入权限,或者其他解决方法,反正你要服务器上的git用户有权限进入www文件夹。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值