美文网首页
配置git开发环境(自动部署)

配置git开发环境(自动部署)

作者: 悟器大叔 | 来源:发表于2018-09-14 18:46 被阅读35次

    本文没有整理的很通顺,抱歉。

    Step1 服务器添加ssh的pubkey实现无密码登陆服务器

    1 本机:ssh-keygen -t rsa 生成钥匙对
    2 复制 生成的 id_rsa.pub(默认)到服务器的 ~/.ssh/authorized_keys文件中
    3 测试直接 ssh username@xxxx.xxxx.xxx

    Step2 参考网上的文章构建两个库

    1. 版本管理用的 bare库,git init --bare --shared
    2. 服务文件夹在的库 git add --all

    Step 3 实现本地推送之后根据不同的分支名更新不同的文件夹

    1.在bare库的hooks文件夹下找到post-update.sample并去掉.sample

    1. 输入以下代码
    #!/bin/sh
    #
    # An example hook script to prepare a packed repository for use over
    # dumb transports.
    #
    # To enable this hook, rename this file to "post-update".
    # 获取当前提交代码的人的分支名
    branch=$(git rev-parse --symbolic --abbrev-ref $1)
    
    # 如果为master主分支就cd到html的服务环境,
    # 其他分支的就根据branch名称来确定去相应的文件夹
    if [ "master" = "$branch" ]; then
         cd /var/www/html
    else
         cd /var/www/$branch
    fi
    
    # 在相应的开发文件夹下pull 远端的相应分支到自己的master下
    unset GIT_DIR
    git pull origin $branch:master
    
    exec git update-server-info
    

    附录 设置服务器的虚拟域名以映射到相应的文件夹下

    由于本来我的这台服务器就开了ssl所以我要做的就是在/etc/apache2/sites-enabled/000-default.conf中加入相应的设置,

    <VirtualHost *:80>
            ServerName test.yourserver.com
            ServerAlias *.test.yourserver.com
    
            ServerAdmin webmaster@localhost
          
            VirtualDocumentRoot /var/www/%1
            <Directory /var/www/%1/hotel_price>
                    Options FollowSymLinks ExecCGI
                    AllowOverride All
            </Directory>
    </VirtualHost>
    

    网站根目录在/var/www下,其中有很多git的仓库,比如有个/var/www/try文件夹,然后访问网址的时候就用的是 try.test.yourserver.com
    为了能够解析这个网址,在域名商处需要配置一下,CNAME 解析 *.test

    ps 这个解答里提供了另一种方法,针对不同的用户登陆https://stackoverflow.com/questions/26734933/how-to-set-up-git-over-http

    pps 这里有ssl设置的方法https://www.digicert.com/csr-ssl-installation/apache-openssl.htm#ssl_certificate_install

    相关文章

      网友评论

          本文标题:配置git开发环境(自动部署)

          本文链接:https://www.haomeiwen.com/subject/gpxagftx.html