まず第一に、セキュリティが必要なプロジェクトに 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 マージおよびコミット フックで git-ftp を使用します。
.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 を使用すると、マスター ブランチの変更によって自動的にアップロードされます。多くの場合、リリースにはマスター ブランチのみを使用し、開発には別のブランチを使用します...