Introduction
Git-ftp is an ftp application that uses git as a version control system. It uploads only the files that have been changed in git, saving bandwidth and time.
Installation
For Debian-based systems, you can simply install it by running:
sudo apt install git-ftp
For other versions, you can find the specific installation instructions here: https://github.com/git-ftp/git-ftp/releases. Simply extract the files and run the application.
Usage
Adding Config
You can directly add the following configuration to the .git/config
file in your git project:
[git-ftp]
url = ftp.example.net
user = ftp-user
password = secr3t
Alternatively, you can use git commands to add the configuration:
git config git-ftp.url ftp.example.net
git config git-ftp.user ftp-user
git config git-ftp.password secr3t
Specific Config Parameters
git config git-ftp.url ftp://ftp.example.net:8010/path
- FTP address
git config git-ftp.user ftp-user
- FTP username
git config git-ftp.password secr3t
- FTP password
git config git-ftp.syncroot path/dir
- Local directory to sync
git config git-ftp.remote-root htdocs
- Remote directory
For more information, you can refer to the manual.
Syncing
To initialize the synchronization of all files, run:
git ftp init
After making changes and committing them in git, you can sync to the remote directory by running:
git ftp push
This will only upload the updated files by comparing them with the local git repository.
Syncing with Hugo
Originally, the blog was synced using Caddy + git + hugo. However, since it was inefficient to run only this program on the VPS, I moved it to a virtual host on Baidu Cloud, which only costs 30 yuan per year.
To sync, follow the steps mentioned above to add the ftp configuration. Then, remove the ./public
directory from the .gitignore
file. The git-ftp.syncroot
path should be $PATH_TO_YOUR_HUGO/public
. After generating the files in the public
directory using hugo -E
, commit the changes and use git ftp push
to sync.
2019-9 Switched to typlog
2023-7 Switched to xlog.app