使用 git-ftp 同步 hugo 到 ftp
简介
Git-ftp 是一个使用 git 作为版本控制的 ftp 应用,它可以根据 git 的改动只上传需要更新的文件,来节省流量和时间。
安装
在 Debian 系下,只需要安装:
sudo apt install git-ftp
其他版本具体可以在这里找到https://github.com/git-ftp/git-ftp/releases只需要解压运行即可。
使用
添加 Config
可以直接在 git 项目的.git/config
里添加:
[git-ftp]
url = ftp.example.net
user = ftp-user
password = secr3t
或者使用 git 命令来添加:
git config git-ftp.url ftp.example.net
git config git-ftp.user ftp-user
git config git-ftp.password secr3t
具体 Config 参数
git config git-ftp.url ftp://ftp.example.net:8010/path
ftp 地址
git config git-ftp.user ftp-user
ftp 用户名
git config git-ftp.password secr3t
ftp 密码
git config git-ftp.syncroot path/dir
本地需要同步的目录
git config git-ftp.remote-root htdocs
远程目录
更多可以查看这里-> manual
同步
初始化同步所有文件
git ftp init
其他用法很简单,只需要在 git 内提交文件,然后使用
gti ftp push
就可以同步到远程目录了,在 ftp 内会产生一个 .git-ftp.log
的文件用来记录 ftp 内文件的 commit 版本,然后通过于本地 git 比较从而只上传更新的部分。
同步 Hugo
本来博客是使用 Caddy + git + hugo 进行同步,后因为 VPS 只跑这一个程序有点浪费了,正巧百度云的虚拟主机打折一年只要30元,于是搬到到虚拟主机上。(2019-07开始简书之旅)
同步的话,按照上面的内容添加好 ftp 后,将 ./public
目录移出 .gitignore
文件里面, git-ftp.syncroot
的路径应该是$PATH_TO_YOUR_HUGO/public
,然后使用hugo -E
生成 public 里的文件,提交更改后,使用 git ftp push
就可以同步了。