使用 Git 推送部署 Hugo 站点

介绍

在服务器上配置好 SSH 协议后,可以使用 Git 将仓库推送到服务器并使用钩子执行构建网站操作。rsync 方案要求平台必须支持,但 Windows 上默认并没有,Git for Windows 中也不带。使用 Git 仓库推送可以最小化需要传输的文件大小,并且可以增量传输,较为方便。

环境

  • Windows 11 23H2
  • Git for Windows 2.41.0
  • Hugo 0.84.0

服务器

参考 博客迁移到 Ubuntu 22.04 - 狂飙 搭建好网站

 1  2  3  4  5  6  7  8  9 10 11 
# 创建远程仓库 git init --bare networm.me.git # 下载 Hugo 并解压 wget https://github.com/gohugoio/hugo/releases/download/v0.84.0/hugo_0.84.0_Linux-64bit.tar.gz tar -zxvf hugo_0.84.0_Linux-64bit.tar.gz # 创建推送钩子 vi networm.me.git/hooks/post-receive chmod +x networm.me.git/hooks/post-receive sh networm.me.git/hooks/post-receive 

在服务器中手动执行以上步骤,其中 networm.me.git/hooks/post-receive 文件内容如下:

 1  2  3  4  5  6  7  8  9 10 11 12 
#!/bin/sh  set -x SITE=/home/networm/networm.me HUGO=/home/networm/hugo DESTINATION=/var/www/networm.me/html/ mkdir -p $SITE git --work-tree $SITE clean -df git --work-tree $SITE checkout --force $HUGO --source $SITE --gc --cleanDestinationDir --destination $DESTINATION 

本地

setup.sh

1 
git remote add website [email protected]:/home/networm/networm.me.git 

deploy.sh

1 
git push --force website 

将以上内容分别存为对应的文件,方便后续迁移到不同设备重新初始化使用。之后在部署时只需要执行 deploy.sh 即可。

预览

hugo.sh

1 2 3 
#!/bin/sh  ../hugo_extended_0.84.0_Windows-64bit/hugo.exe server --buildDrafts 

使用相对路径引用 hugo 并指定构建草稿,方便本地测试。

版权声明:
作者:倾城
链接:https://www.techfm.club/p/145697.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>