搭建服务器上的Git并实现自动同步到站点目录(www)

因业务需要,我需要实现项目的版本控制并在提交代码的时候能将实时更新的代码同步更新到站点目录,折腾大半天,就记录下来,也仅供大家参考
一 、 在服务器上安装Git
验证 git 是否安装成功 git --help,出现下图则安装成功

·
二 、在服务器上创建裸版本库
ps:远程仓库通常只是一个裸仓库(bare repository)--即一个没有当前工作目录的仓库。因 为该仓库只是一个合作媒介,所以不需要从硬盘上取出最新版本的快照;仓库里存放的仅仅是Git的数据。简单来说,裸仓库就是你工作目录中.git子目录的内容。。。
#git init --bare [仓库名] ----创建裸仓库
#git init [仓库名] ---- 创建仓库

三、在本地克隆服务器上的裸仓库
本地已安装 Git Bash , 如果未安装: https://git-for-windows.github.io/
进入本地版本库所在目录(可根据实际情况自定义),然后进行Clone

出现上图情况,即用户权限问题,将仓库文件夹赋予git用户,相关命令如下:
useradd git
passwd git (your pass)
chown -R git:git [仓库名称]
或者是因为本地原有的SSH协议信息失效了,解决方案,清除你当前机器里关于你的远程服务器的缓存和公钥信息
ssh-keygen -R "你的远程服务器ip"

初始化本地仓库,创建本地开发分支 【 Git checkout -b newbranch】;
然后就可以进行代码的版本管理了...

四、实现自动同步到站点目录[即使用git的钩子功能]
ps: 使用的是服务端钩子
我们需要两个目录
1、git 服务器仓库目录 : /home/testgit/test.git
2、web站点目录:/www/test
开始配置钩子 Hooks
1> 在仓库目录中新建post-receive,位于 /home/testgit/test.git/hooks
2>切换至web站点目录,执行项目克隆
# cd /home/www
# git clone /home/testgit/test.git
3> 编写自动拉取脚本,即post-receivecd,内容如下

保存后赋予可执行权限:
# chmod +x /home/testgit/test.git/hooks/post-receive
4> 修改web目录的权限
ps: 因为执行拉取的时候是git用户,所以站点项目目录(/home/www/test)的权限设定为git 用户
5> 配置完成,这样在本地执行git push 代码时,服务器代码仓库更新的同时,web站点目录/home/www/test 也会自动执行git pull 同步本地推送
至此,git服务器的安装部署和自动同步Web站点目录就完成了。
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bennett_G

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值