<
Gitでよく使うコマンド
| index |
2012/05/11: git-ftp.pyを使ってGitで管理しているFTP経由でローカルとリモートのファイルを同期
既にリモートサーバー上に配置されたプロジェクトを、今後Gitでバージョン管理していきたい場合、どうするのが一番いいのでしょうか?
こちらに書いたTransmitのディスク機能を使って、リモート側にリポジトリを作って・・・というやり方だと、addしたときに下記のようなエラーが出てうまく行きませんでした。
GitのドキュメントにはFTP経由でもいけそうに書いてあるのですが、マウント以外の方法でも自分が試した限りでは駄目でした。cloneなどはいいけど、書込み系のコマンドは駄目なのかもしれません。よくわかりませんが。
個人的にはこれだというところまでは行っていませんが、備忘録がてらひとつの方法の手順をまとめておきます。
git-ftp.pyを使って同期させる方法です。
上記GithubのサイトからソースコードをDLして、フォルダ毎ローカルのどこかに配置します(ZipでDLした人は、「git-ftp」にリネームしておくと良いでしょう)。
git-ftp.pyを実行可能にします。
リモートにあるファイルをローカルにDLして、プロジェクトディレクトリにリポジトリを作成します。
作成されたリポジトリ内に2つのファイルを追加します。
.git/ftpdata
.git/hooks/post-commit
post-commitを実行可能にします。
ここまでの設定を済ませておけば、あとはgit commit を実行した時に、post-commitがgit-ftp.pyを叩き、変更箇所をリモート側に反映してくれます。とりあえず、FTPでしか繋げないリモートのプロジェクトファイルをGitで管理できるようになりました。が、準備がちょっと面倒くさい、もっといい方法ないのだろうか...。
参考:
[Git]git で push したファイルを FTP 経由で差分アップロードするよ
トラックバックURL
こちらに書いたTransmitのディスク機能を使って、リモート側にリポジトリを作って・・・というやり方だと、addしたときに下記のようなエラーが出てうまく行きませんでした。
error: file write error (Input/output error)
fatal: unable to write sha1 file
GitのドキュメントにはFTP経由でもいけそうに書いてあるのですが、マウント以外の方法でも自分が試した限りでは駄目でした。cloneなどはいいけど、書込み系のコマンドは駄目なのかもしれません。よくわかりませんが。
個人的にはこれだというところまでは行っていませんが、備忘録がてらひとつの方法の手順をまとめておきます。
git-ftp.pyを使って同期させる方法です。
上記GithubのサイトからソースコードをDLして、フォルダ毎ローカルのどこかに配置します(ZipでDLした人は、「git-ftp」にリネームしておくと良いでしょう)。
git-ftp.pyを実行可能にします。
chmod +x /path/to/git-ftp/git-ftp.py
リモートにあるファイルをローカルにDLして、プロジェクトディレクトリにリポジトリを作成します。
cd /pa/th/to/project
git init
作成されたリポジトリ内に2つのファイルを追加します。
.git/ftpdata
[master]
username=ユーザー名
password=パスワード
hostname=FTPアドレス
remotepath=リモート上のプロジェクトディレクトリへのパス
ssl=no
.git/hooks/post-commit
#!/bin/sh
/path/to/git-ftp/git-ftp.py
post-commitを実行可能にします。
chmod +x /pa/th/to/project/.git/hooks/post-commit
ここまでの設定を済ませておけば、あとはgit commit を実行した時に、post-commitがgit-ftp.pyを叩き、変更箇所をリモート側に反映してくれます。とりあえず、FTPでしか繋げないリモートのプロジェクトファイルをGitで管理できるようになりました。が、準備がちょっと面倒くさい、もっといい方法ないのだろうか...。
参考:
[Git]git で push したファイルを FTP 経由で差分アップロードするよ