美文网首页
使用git代替ftp部署代码

使用git代替ftp部署代码

作者: 北方蜘蛛 | 来源:发表于2016-06-22 00:48 被阅读1054次

本地开发完成后,通常会在服务器上部署,有人会使用ftp,有人会使用scp, ftp和scp的时候为了方便我们通过还要tar或者zip一下, 这些做法也很不错,但是它有一些问题
1.全部更新,不管某些文件是否修改,都要重新传一下服务器,浪费时间与流量2.多台服务器的重复上传3.代码更新后,后续的一些操作不够自动化
上面的问题可以通过ssh直接远程执行命令来解决,但是需要写一些shell脚本, 有没有更简单更高效的方法呢?有,那就是使用版本版本管理工具的hook!
这里我说是版本管理工具而不是git,是因为svn、git、hg都是有相应的hook的, 原理大同小异。下面是Git详细的思路。
服务器端操作
首先创建一个裸库,为什么是裸库?因为这个库不是真正用来修改的,我们也不允许在服务器上修改代码,我们只是把它当作一个代码中转的地方:
复制代码代码如下:

cd gitroot 
mkdir projectname
cd projectname
git init --bare

添加我们的hook
复制代码代码如下:

cd /hooks
touch post-receive #注意权限一定要可执行 chmod u+x xxx

编辑post-receive的内容为下面的,其中sites/projectname,是我们存放网站代码地方复制代码代码如下:

env -i git archive master | tar -x -C /sites/projectname 
echo "远程更新完毕"

本地git的操作
本地我们只需要添加一个远程库,在需要部署的时候push到远程库就行了,下面我们添加了一个名为publish的远程库
复制代码代码如下:

git remote add publish username@xx.xx.xx.xx:/home/gitroot/projectnamegit
push publish master

可以强化的地方
这里演示的是一个简单的小网站的部署过程,复杂的情况下我们还可以添加静态资源版本更新,服务器重启等等,举一反三, 最大程序自动化我们的工作。

相关文章

  • 使用git代替ftp部署代码

    本地开发完成后,通常会在服务器上部署,有人会使用ftp,有人会使用scp, ftp和scp的时候为了方便我们通过还...

  • 通过Git Hooks实现自动部署

    以前尝试部署代码到服务器的方式有用到Github Hook或者ftp,但使用起来都有各自的缺陷,然后就发现了git...

  • Hooks实现自动化部署

    以前尝试部署代码到服务器的方式有用到Github Hook或者ftp,但使用起来都有各自的缺陷,然后就发现了git...

  • 使用Git在Linux中部署网站

    使用Git在Linux部署网站 git是一种简单易用的版本控制工具,使用git进行代码的部署是一种非常常用的操作。...

  • git commitizen

    AngularJS团队提交规范 全局安装完成后在使用git commit代码时使用git cz 代替 后按提示填写即可

  • 代码部署(一):使用git部署代码到服务器

    直接使用git部署代码带服务器 前提 配置用户和部署目录的读写权限 安装git 配置ssh权限 基本配置 进入在服...

  • git自动部署代码

    git自动部署代码服务器创建裸仓库: 配置自动部署代码的脚本: 权限问题:git:git nginx:www...

  • 《最详细》CentOS搭建SVN自动部署服务器

    代码部署是开发流程中的关键环节,如果手动通过ftp、git方式会造成非常多的困扰,较为传统的做法就是搭建SVN服务...

  • git

    使用git add . 代替 git add *使用git add之后,怎样恢复?

  • 使用 git-ftp 同步 hugo 到 ftp

    简介 Git-ftp 是一个使用 git 作为版本控制的 ftp 应用,它可以根据 git 的改动只上传需要更新的...

网友评论

      本文标题:使用git代替ftp部署代码

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