当前位置: 首页 > 编程笔记 >

使用git代替FTP部署代码到服务器的例子

何甫
2023-03-14
本文向大家介绍使用git代替FTP部署代码到服务器的例子,包括了使用git代替FTP部署代码到服务器的例子的使用技巧和注意事项,需要的朋友参考一下

本地开发完成后,通常会在服务器上部署,有人会使用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


编辑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/projectname

git push publish master

可以强化的地方

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

 类似资料:
  • 本文向大家介绍Python代码使用 Pyftpdlib实现FTP服务器功能,包括了Python代码使用 Pyftpdlib实现FTP服务器功能的使用技巧和注意事项,需要的朋友参考一下 当你想快速共享一个目录的时候,这是特别有用的,只需要1行代码即可实现。 FTP 服务器,在此之前我都是使用Linux的vsftpd软件包来搭建FTP服务器的,现在发现了利用pyftpdlib可以更加简单的方法即可实现

  • 我想在远程服务器上运行我的java代码以获得更快的速度(服务器非常强大)。我想要的是将我的Intellij连接到那个远程服务器并运行我的代码。但我仍然想在我的本地机器(即我的笔记本电脑)上使用IntelliJ。 我在IntelliJ中找到了一个配置部分,它位于中,在那里我可以设置远程服务器的地址、用户名和密码。但我不知道下一步该怎么办。

  • 本文向大家介绍Webpack 服务器端代码打包的示例代码,包括了Webpack 服务器端代码打包的示例代码的使用技巧和注意事项,需要的朋友参考一下 环境变量 之前,我们在项目里会经常使用 process.env.NODE_ENV, 但这个变量对于 webpack打包是有影响的, 在 production 的时候是有优化的. 所以, 我们将改用其他的环境变量来区别: 像这样, NODE_ENV 始终

  • 本文档用来说明通过预编译好的安装包来安装并运行基于 MySQL/MariaDB 的 Seafile 服务器。(MariaDB 是 MySQL 的分支) 下载 到下载页面下载最新的服务器安装包. 部署和目录设计 假设你公司的名称为 haiwen, 你也已经下载 seafile-server_1.4.0_* 到你的 home 目录下。 我们建议这样的目录结构: mkdir haiwen mv seaf

  • 本文档详细介绍如何使用预编译好的软件包来安装和运行 Seafile 服务器。 下载 到下载页面下载最新的服务器安装包. 部署和目录结构 注意: 如果你把 Seafile 文件放在一个外部存储的目录里(比如NFS,CIFS),你应该使用 MySQL 而不是 SQLite 来作为数据库。请参考下载和安装Seafile服务器(使用MySQL)。 假设你公司的名称为”haiwen”,你也已经下载 seaf

  • 最简单的部署 git clone git@github.com:i5ting/shop-api.git git clone git@github.com:i5ting/shop-admin.git git clone git@github.com:i5ting/shop-h5.git ftp上传 前提是在服务器上部署ftp服务器 推荐使用gulp和ftp部署 https://github.com