php如何实时更新git代码,git实现代码自动更新

一、安装git

yum  –y  install  git

初始化一个空仓库

先创建一个目录用来存放git仓库,然后执行以下命令,创建一个git仓库

git init –bare liong.git

dc1e4bd8ff4f15a74b65fc85e623065c.png

二、创建一个用户专门管理git服务

[root@localhost githouse]# groupadd git

[root@localhost githouse]# useradd git -g git

e3b295b7180380fae231dd99fd89e1c6.png

设置git用户密码

60b220f125faacb1fd20814502e6aa84.png

设置git仓库的用户和组

[root@localhost githouse]# chown git:git -R ./liong.git/

b4c9268e932128d775c29182168453ae.png

三、用git用户检出并提交代码

在window系统检出后,提交一个index.html到git仓库,然后在linux上的/var/www下检出

0c48585227d16e6b428d19357f15e185.png

出现以下窗口

9bfbcb61ce75e22b5ce0942dbdd85388.png

格式 git clone git@ip:服务器上的git仓库路径,从根目录开始

d2be222019b20d1c5cbbc0b9c3153dbe.png

5cf058dc0f29b0d34f776cb709519d69.png

进入到liong文件夹,新增一个index.html文件提交上去

d0932d634d1e5f7de0072df084fd04da.png

先设置一下邮箱和用户名

git config --global user.email "you@qq.com"

git config --global user.name "liong"

a806c255a4fc0a0ce8e844969c808d1c.png

在linux上的/var/www克隆liong.git,能看到我们刚才在window上提交的index.html

895ec5645ce22130c765259c68ce3e9e.png

四、使用SSH管理git

由于git用户能远程登录到我们有服务器,会对服务器的安全造成威胁,所以改用ssh管理git。

git用户禁用shell

打开/etc/passwd文件

找到git,类似以下

git:x:1003:1003::/home/git:/bin/bash

337746de77046c82be717af2ed1fb586.png

改为如下图所示

6fe010a74fcb0ae9860eeebd416023a3.png

git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

git-shell: Git自带的git-shell简单工具把git用户的活动限制在仅与Git相关的操作, 把它设为git用户登入的shell,那么该用户就不能拥有主机正常的shell访问权

创建window下的密钥对

在window主机任何目录下右键-->选择git bash here,然后执行 ssh-keygen –t rsa命令,如下图所示:

40ba6eb7b409e14b6db95e737c81ef7d.png

把window下的公钥文件id_rsa.pub导入到/home/git/.ssh/authorized_keys,目录和文件不存在则创建

4919c5a38f2f19d31e77f0e33e4bd925.png

把公钥传到linux上然后导入authorized_keys里

[root@localhost .ssh]# cat win7.pub >> authorized_keys

416571cac923344ec06086bc0b111d3f.png

设置/home/git目录的所有文件的用户和组都是git

47357f11c7a2e7199c03c9627012ff87.png

在window下打开git bash 输入克隆命令和git地址,把linux创建版本库拉取下来

git clone git@192.168.160.168:/data/githouse/liong.git

6f0c1681985777664342f7f249d4fa5a.png

五、代码实时更新

假设/data/www/liong设置为apache虚拟主机的目录

先在项目目录下克隆liong.git

克隆时提示要输入密码,那是因为在linux没有创建密钥对,所以不能克隆

aef055bc20b7b116167e782f5a7082a5.png

创建密钥对,并导入到/home/git/.ssh/authorized_keys文件中

1aefae809e47a51d0a2a7e6463894733.png

再次执行克隆命令

b13edb2997be3764794bf815caf6763e.png

进入到liong仓库下的hooks目录

139a633ce5f97e45e24259cee34ef6bd.png

是web网站项目的路径

创建一个post-receive脚本,写入以下代码,赋予可执行权限

#!/bin/sh

unset GIT_DIR

git --work-tree=/data/www/liong checkout -f

git pull

注:/data/www/liong是虚拟主机路径(改成你自己的路径)

5cf205fd2aae40af28d4738245ebcca8.png

94ed4f18a0ea1962a43b2be59fb8cc50.png

把虚拟主机的项目所有者改为git,这样git用户才有权限对它操作

f4c1fe3bf115eb93df8123edc5d5523a.png

在window新建一个login.php,pull后,在linux上的/data/www/liong目录下可以看到刚才提交的login.php文件

f1b6f8923414a00c2aff06d9bd58e6f7.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值