gitとDropboxでお手軽・無料のSource Hostingを実現する

以前から興味があった、バージョン管理システムの一つである git を導入しました。

目的としては、もちろん開発しているソースのバージョンを管理する、というのもありますが、それ以上にHostingサービスを使って、複数台のPCから最新のコードにアクセスできるようにしたい、というものがあります。

ただ、調べてみたところ、有名な github を含め、基本的に Hostingサービスではプライベート用途で使う場合はお金がかかる模様 (ソースコードを公開するOSSの場合は基本的に無料です)。

それでは、ということで、複数PC間のデータをバックグラウンドで意識せずに同期してくれる無料ストレージサービス Dropbox とgitを組み合わせて、手軽にプライベート用のSource Hostingを実現することにしました。要は、リモートgitサーバを使う方法で、その宛先をDropbox内のローカルファイルにするだけです。

ここではプログラミングのソースを例に上げていますが、同じやり方でバージョン管理をしたい書類なども管理できると思いますので、お試し下さい。
なお、Dropbox自体の機能として、 30日以内であればファイルを以前のバージョンに戻す機能もあります

  1. Dropbox をインストールします。
  2. gitをインストールします (Macの場合は MacPorts からインストールできます)。
  3. Dropbox フォルダにgitのリポジトリを入れるフォルダを作成します。

    cd ~/Dropbox
    mkdir repo

  4. 上で作成したフォルダに {プロジェクトのフォルダ名}.git というフォルダを作成し、”–bare”オプションを付けてinitします。

    cd repo
    mkdir test.git
    cd test.git
    git --bare init

  5. プロジェクトが新規の場合、上で作成したDropbox上の {プロジェクトのフォルダ名}.git をcloneします。

    cd ~/dev
    git clone ~/Dropbox/repo/test.git

  6. 既存のソースなどを追加する場合は、一度そのプロジェクト上でadd、commitした後、Dropbox上の {プロジェクトのフォルダ名}.git にpushします。その後のpush、pullを楽にするためにremoteでoriginを追加しておきます。

    cd ~/dev/old_prj
    git init
    git add .
    git commit
    git push ~/Dropbox/repo/test.git master
    git remote add origin ~/Dropbox/repo/test.git

  7. あとはgithub等リモートサーバを利用するときと同様です。変更を加えてpushすればDropbox内のリポジトリが更新され、その内容が他のPCにも自動的に同期されて、リポジトリが最新の状態に保たれます。

    git pull
    ...
    git push

ちなみに、Dropboxが使えるのであれば、最初からそのフォルダ内で開発するのが最も楽で確実だと思いますが、その場合、開発時に自動的に作られるファイルや一時ファイル等も同期されてしまうことになります。
それを気にするかは好みの問題ですが、もし気になるような方は上記の方法で必要なファイルのリポジトリだけを同期するというやり方を試していただければと思います。

(参考)