本地开发完成后,通常会在服务器上部署,有人会使用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
可以强化的地方
这里演示的是一个简单的小网站的部署过程,复杂的情况下我们还可以添加静态资源版本更新,服务器重启等等,举一反三, 最大程序自动化我们的工作。
git,FTP,部署代码,服务器
更新动态
- 杉果福袋¥35.8抽《庄园领主》《地狱潜兵2》
- Bruckner-SymphoniesNos.56-NewPhilharmoniaOrchestra,OttoKlemperer(2024)[24-192]FLA
- 群星《梦舞池3》WAV分轨
- 黄凤凤.2011-丽风金典系列VOL.1【丽风】2cd【WAV+CUE】
- 大部分情侣是食色性也的酒肉情侣 3D区X光片的囧图
- 《崩坏:星穹铁道》迎一周年!登陆游戏送10连抽
- 布兰妮与父亲达成和解:需向父亲支付200多万法律费
- Taylor Swift霉霉《THE TORTURED POETS DEPARTMENT THE ANTHOLOGY》[FLAC][766M]
- 潘美辰《金歌点唱 HDCD 》[WAV+CUE][603M]
- 久石让 《你想活出怎样的人生》原声带[FLAC][314M]
- 【原神】枫丹V4.6世界任务 | 第三章·法沙利亚狂想曲
- 【原神】1.0~4.6开服至今「全隐藏成就」统计汇总
- 方大同.2007-爱爱爱音乐会THISLOVELIVE2007【华纳】【WAV+CUE】
- 群星.2024-叶振棠80【环星】【FLAC分轨】
- 庄达菲.2024-东张西望(EP)【创娱无界】【FLAC分轨】