[Git] Git で管理しているフォルダの中身を簡単にFTP(FTPS)でアップロード(同期)できる git-ftp の使い方(Mac)

Git で管理しているにも関わらず、サーバーへのアップロードなどを手動で行っていると、手間がかかるだけでなく、アップロードや削除もれなどというミスにつながることがあります。

git-ftp を使うと FTP クライアントなどを使うことなく、Git でコミットしたファイルをサーバーへアップロードできます。(ファイルの削除を行った場合はそれも反映してくれます。)ミスを防いだり、作業を効率化することができますね。大変便利です。

git-ftp を使って Git で管理中のフォルダとサーバーを同期する方法と、SouceTree での同期方法をまとめました。

◆ git-ftp/git-ftp: Uses Git to upload only changed files to FTP servers.

参考:
How to use git-ftp
git-ftp インストールと設定(Windows) – Qiita
使い方や概要は上記の記事を読んで頂いてもほぼわかると思います。大変参考になりました!

git-ftp を導入する

※この記事では、Homebrew から git-ftp などをインストールしています。
Homebrew のインストール方法はこちらの過去記事「Git をインストールする手順[ 2 ] – Homebrew からインストールする 」のなかでまとめています。

curl をインストール

git-ftp を使うのに curl という HTTP や FTP に関する機能をつかえるコマンドが必要なため、Homebrew からインストールします。オプション付きでインストールした方がよいようです。(参考:How to use git-ftp

curl をインストールするにはターミナルで以下のように入力します。

brew install curl --with-ssl --with-libssh2
curl についての参考:
curlの使い方

git-ftp をインストール

以下のコマンドをターミナルで入力すると git-ftp のインストールが開始されます。

brew install git-ftp

git ftp と打ち込んで以下のように返ってきたらインストール成功です。

git ftp

↓(インストールできてたら以下のように返ってくる)

git-ftp <action> [<options>] <url>

git-ftp でサーバーと同期する

デスクトップに置いた Git 管理中の「example-git」フォルダを例として、サーバーと同期する手順を書いていきます。

デスクトップに置いた Git 管理中の「example-git」フォルダ

初期設定

git-ftp を使うために最初にサーバーと接続し初期設定を行う必要があります。
example-git フォルダへ移動するため、以下のコマンドを入力します。

cd ~/Desktop/example-git

次に、以下のコマンドを入力し初期設定をします。< > 内はサーバーの情報が入ります。

git ftp init -u <ユーザー名> -p <パスワード> ftp://<ホスト名(アドレス)>/<同期するディレクトリへのパス>
There are no files to sync. Last deployment changed to .

と表示されたら最初の同期が成功し、指定したサーバーのフォルダにログのファイルができています。

フォルダにログのファイルができている

サーバーへファイルをアップロードする

ローカルの example-git フォルダにファイルなどを入れコミットします。

example-git フォルダの中身

ターミナルに以下のコマンドを打ち込みます。(初期設定の時のコマンドの init が push になったもの)

git ftp push -u <ユーザー名> -p <パスワード> ftp://<ホスト名(アドレス)>/<同期するディレクトリへのパス>

Last deployment changed to とコミットログが表示されたらアップロード完了です。
サーバーにファイルがアップロードされています。

アップロード完了

この後もまたコミットしたら、上記のコマンドを打ってサーバーと同期していくという感じです。

サーバーとの同期を SouceTree から行う

私はターミナルでコマンドを打つのが苦手なので SouceTree を使用していますが、コミット&プッシュしたついでにサーバーとの同期も SouceTree から行いたいです。

初期設定はターミナルから行わなくてはいけませんが、同期する処理はカスタムアクションを登録することで SouceTree から行うことができます。

!注意点

SouceTree で git-ftp を使う場合は、SouceTree で使用する Git と git-ftp が同じ場所にないとエラーになってしまいます。
前回の記事「[Git] SourceTree で使用する Git を Homebrew でインストールした Git へ変更する方法(Mac)」の方法でシステムの Git を使うように変更しておきましょう。

コマンドをシェルスクリプトにする

カスタムアクションはシェルスクリプトで登録するため、まずは、git ftp push のコマンドをシェルスクリプト化します。

テキストエディタで、「git-ftp-push(←任意の名前).sh」というファイルを作り以下のように記入します。””の中にはサーバー情報を記入します。

#!/bin/sh

#↓FTPユーザー名を記入
USERNAME=""

#↓FTPパスワードを記入
PASS=""

#↓ホスト名(アドレス)を記入
FTP=""

#↓同期する同期するディレクトリへのパスを記入
FOLDER=""

git ftp push -u $USERNAME -p $PASS $FTP$FOLDER

このままだと実行できないのでこのファイルのアクセス権を変更します。ターミナルで以下のように打ち込みます。

chmod u+x ~/Desktop/example-git/git-ftp-push.sh

これでシェルスクリプト化できました。

カスタムアクションを登録する

SouceTree を開いて先ほど作ったシェルスクリプトをカスタムアクションに登録します。
画面上部ツールバーから環境設定を開きます。

画面上部ツールバーの環境設定を選択

以下のウィンドウが表示されるので、「カスタムアクション」のタブを開き、下の方にある「追加」ボタンをクリックします。

「カスタムアクション」のタブの表示

「メニューキャプション」に適当な名前を入力し、「実行するスクリプト」で先ほど作ったシェルスクリプトを選択します。

カスタムアクション設定画面

「OK」ボタンをクリックして登録完了です。

カスタムアクションでサーバーとの同期を行う

管理中のフォルダで追加や変更があって、コミットしたとします。画面上部ツールバーの「操作」から「カスタムアクション」を選択し、先ほど登録したメニュー名をクリックします。

「カスタムアクション」を選択する

SouceTree でエラーなどがでていなければ、これでサーバーとフォルダが同期されているはずです。シェルスクリプトの登録などは少し面倒な気もしますが、一度やっておけば後の作業がだいぶ楽になりますね。

Related Article

No Comments & Tracbacks

Leave a Comment

Emailは公開されません。*は必須項目です。


*


Categorys

Tags

CSS3 ダッシュボード ヘッダー トラブル コードサンプル コンテンツ スライドショー jQueryプラグイン php 引っ越し 素材 お知らせ JavaScript Facebook CSS カテゴリー 投稿タイプ IE HTML5 Shareボタン seo レスポンシブ Photoshop タクソノミー ナビゲーション カスタムメニュー Git Macアプリ サイドバー WPセキュリティ SVG iTunes PHPリファレンス API WP使い方 query_posts データベース get_posts() 条件分岐 コメント function RSS スマートフォン Sass/Compass さくらVPS