Git のバージョン管理と連携して、最新のコミットを FTP でアップロードしてくれます。
動作環境)
・Git-1.7.8
・Windows XP, 7
インストール
参考)
https://github.com/git-ftp/git-ftp/blob/develop/INSTALL.md
Git Bash で下のコマンドを実行してください。
cd ~
git clone http://github.com/git-ftp/git-ftp git-ftp.git
cd git-ftp.git && chmod +x git-ftp
cd /bin/
ln -s ~/git-ftp.git/git-ftp git-ftp
1行目でユーザディレクトリに移動。
C:\Users[ユーザ名]\ (Windows 7 の場合)
5行目で git-ftp へのシンボリックリンクを作成しています。
これでインストール作業は完了。
正しくインストールされているか、まずは確認しましょう。
"git ftp" と入力して、とりあえず [Enter] を押してください。
> git ftp
git-ftp <action> [<options>] <url>
上記の表示が出たら、OKです。
設定
Git リポジトリのあるディレクトリに移動します。
Git Bash で下のコマンドを実行します。
git config git-ftp.[固有名称].url ftp://[ドメイン名][:ポート番号]/[FTPで接続されたディレクトリからの相対パス]/
git config git-ftp.[固有名称].user [ユーザ名]
git config git-ftp.[固有名称].password [パスワード]
git config git-ftp.service.url ftp://domain.com/html/application/
git config git-ftp.service.user admin
git config git-ftp.service.password xxxxxxx
※)url の注意
FTP で接続したときに、自動的に "/var/www" の位置にいる場合、
上記のURLのパスは、"/var/www" を省略してください。
誤:
git config git-ftp.service.url ftp://domain.com/var/www/html/application/
正:
git config git-ftp.service.url ftp://domain.com/html/application/
最初にファイルをアップロードするときは "init" コマンドを使います。
上記の「固有名称」(ここでは service) を -s の後につけます。
git ftp init -s service
FTP でアップロードされたディレクトリに ".git-ftp.log" が作成されます。
2回目以降は、Git で更新されたファイル差分のみを "push" コマンドでアップロードします。
git ftp push -s service
なお、Git で編集中のファイルがあるとアップロードするときに必ずエラーになるので commit は終えておいてください。
初めて git-ftp を使うときは、テスト用のリポジトリでアップロードしてみることをお勧めします。
アップロードに失敗したときは、"-v" で詳細な情報を "-vv" (v 2つ) でさらに詳細な情報を確認できます。
git ftp init -v -s service
私の場合、サーバ側で FTP の PASV モードがうまく設定されていなくて、何度も接続に失敗しました。エラーが起こる場合は、-vv で確認してみてください。