This website requires JavaScript.

使用git自动部署网站

2018.04.08 11:31字数 928阅读 273喜欢 0评论 0

怎么做

假设你有台线上主机:

user:user
host:119.28.4.78
password:passwd

并且确保你的本地开发机 与线上主机均已安装好Git(不是Github)

  1. 线上主机增加两个文件夹:

    mkdir ~/git-directory.git
    mkdir ~/wwwroot
    

    其中git-directory.git作为代码仓库,即开发机的代码统一提交到这里存放,wwwroot是开发机上的部署目录

  2. 线上主机git仓库初始化:

    cd ~/git-directory.git
    git init --bare
    cd hooks
    vim post-receive
    
  3. 在post-receive文件中写入以下内容:

    #!/bin/sh
    #
    DIR_ROOT=/home/user/wwwroot
    #
    git --work-tree=${DIR_ROOT} clean -fd
    git --work-tree=${DIR_ROOT} checkout --force
    
  4. 本地开发机增加文件夹并克隆远程git仓库:

    mkdir whatever
    cd whatever
    git init
    git remote add origin user@119.28.4.78:/home/git/git-directory.git
    

    注:此处会要求输入主机的登陆密码(passwd)

最终效果
本地开发机目录可以自由增删文件,并提交到线上主机git仓库.

例如:

touch README
git add README
git commit -m 'first blood' README
git push origin master

此步操作完成后,查看线上主机中第一步建立的那几个目录(git-directory.git、wwwroot),是不是多了一个你刚刚在本地创建的文件README?

如果你的网站比较简单,到这一步就已经是完事了。

如果还想扩展更多,可以学习shell,编写shell脚本实现混搭环境,变量全局