栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Git的完整使用【实现站点自动部署】

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Git的完整使用【实现站点自动部署】

#下边为仓库的创建,钩子文件内容,如何实现自动部署站点钩子文件至关重要
#创建一个空文件夹
mkdir  demo.git
#切换至创建的文件夹下
cd demo.git
#初始化git仓库
git init --bare
#执行命令返回信息
Initialized empty Git repository in /mnt/git/demo.git/  #即为成功
#切换至刚才创建的目录中会发现已经生成了对应的git相关文件夹和文件
drwxr-xr-x 2 root root 4096 Dec  8 13:50 branches
-rw-r--r-- 1 root root   66 Dec  8 13:50 config
-rw-r--r-- 1 root root   73 Dec  8 13:50 description
-rw-r--r-- 1 root root   23 Dec  8 13:50 HEAD
drwxr-xr-x 2 root root 4096 Dec  8 13:50 hooks
drwxr-xr-x 2 root root 4096 Dec  8 13:50 info
drwxr-xr-x 4 root root 4096 Dec  8 13:50 objects
drwxr-xr-x 4 root root 4096 Dec  8 13:50 refs
#vim编辑config文件
vim config
#文件内容如下
[core]
        repositoryformatversion = 0
        filemode = true
        bare = true
#将文件中的filemode值设置为false

#(注意:filemode git文件提交时是否包含文件的rwx权限,一般设置为false,详细可查度娘)

#编辑结束保存退出

#创建站点目录

mkdir webDemo

#并将要使用的域名解析到该站点即可

#重点:站点目录需要赋予可读可写权限,不然一会配置git钩子文件自动部署会出现问题

#回到刚才创建的git仓库下,根据当前情况而言(权限问题一定要注重,稍有不慎将引火上身)

#如若测试,将git仓库下的内容设置权限命令

chmod -R 777

#创建钩子文件实现自动化部署

#进入仓库目录下的 hooks文件夹下(如若想深入了解git目录下的文件以及文件夹的具体含义,私下学习,本次不说)

cd demo.git/hooks

#钩子的重点来了

#创建并编辑文件

vim post-receive
#这是目前我使用的钩子文件内容,可根据你自己的情况修改对应的目录信息

--开始

#!/bin/bash
while read oldrev newrev ref
do
    if [[ $ref =~ .*/master$ ]];
    then
        echo "this is DEMO master"
        git --work-tree=/mnt/demo/web  checkout -f master
    fi
    if [[ $ref =~ .*/dev$ ]];
    then
        echo "this is DEMO dev"
        git --work-tree=/mnt/dev-demo/web  checkout -f dev
    fi

done

--结束 

#上述内容大致为将不同版本的信息自动部署入不同的站点目录中
#创建用户 分配用户组 分配git仓库文件夹所属用户和用户组皆为简单部分,多练多学,祝你早日成功
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/642151.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号