Zeke Xiao

Zeke Xiao

github

使用 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 元,于是搬到到虚拟主机上。

同步的话,按照上面的内容添加好 ftp 后,将 ./public 目录移出 .gitignore 文件里面, git-ftp.syncroot 的路径应该是$PATH_TO_YOUR_HUGO/public,然后使用hugo -E 生成 public 里的文件,提交更改后,使用 git ftp push 就可以同步了。


2019-9 切换到了 typlog
2023-7 切换到了 xlog.app

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。