首先,我不建议将 FTP 用于需要安全性的项目。(通过 FTP 连接,密码和数据以非加密格式传输,因此很容易被盗。唯一的例外是对上传的文件(可能是包)进行签名,并且在对它们进行任何操作之前在服务器上检查数字签名。 Afaik。PHAR是它的默认库,但是如果将签名放入文件名中,加密和签名任何 zip 文件都相对容易。不要将数字签名与 md5 或 sha1 哈希混淆。)
通过 FTP 的简单项目,我使用git-ftp。
安装(通过 Windows,但我认为它也适用于每个系统)
git bash
$ cd ~
$ git clone https://github.com/git-ftp/git-ftp git-ftp.git
$ cd git-ftp.git && chmod +x git-ftp
$ cp ~/git-ftp.git/git-ftp /bin/git-ftp
配置
.git/config
[git-ftp "myscope"]
url = ftp.domain.com/subdir
user = user
password = pass
初始化
git-ftp catchup -s myscope //by this the FTP and the local copy must be in perfect sync
上传
git ftp push -s myscope
您必须使用.git-ftp-ignore
文件来定义您不想上传的内容。
我通常将 git-ftp 与 git merge 和提交挂钩一起使用。
.git/hooks/post-commit
.git/hooks/post-merge
#!/bin/sh
branch=`git rev-parse --abbrev-ref HEAD`
if [ $branch == "master" ]; then
git ftp push -s myscope
fi
有了这些 git-ftp,主分支的任何更改都会自动上传。Ofc 我只将 master 分支用于发布,对于开发我使用另一个分支......