nantekkotai's blog

おもに技術とお仕事に関連することを書いています。

無料でGitもSubversionも使えるサービス「Unfuddle』

Macが二台あるが、そこをうまく、かつ面白く同期したいなあと思い、無料のプロジェクト管理(らしい)サービス「Unfuddle」を使うことにしました。
http://unfuddle.com/

昔もアカウントを取って使っていました。あの頃はまだ若かったのでSVNリポジトリのために借りていました。
そう、このこのサービス、無料で200MBものリポジトリが使えるのです。
しかもいつの間にか進化していて、今ではGitが使える。
さらに、無料アカウントではプロジェクトは1個だけだが、なぜかリポジトリの数は無制限になっている。
このサービス、いつか破綻するんではなかろうか、などと思ってしまうほど太っ腹です。
あえて制限があるとしたら、無料アカウントだと、プロジェクトメンバーが2人までということだろうか。
まあ友達の少ない僕には関係のない話です。UIも使いやすい。

ここで自分はMacを使っていたので、MacでUnfuddleのGitを使った手順をざっと紹介。
1)そもそもMacにGitがなきゃいかん
http://code.google.com/p/git-osx-installer/
便利なインストーラがあるので、それを使ってインストール。

2)ローカルレポジトリを作成します

$ mkdir repo
$ cd repo
$ git init

3)UnfuddleのGitサーバを登録、その前に
RSAキーを作成して認証が通るようにします。このあたりはUnfuddle内に説明書きがあるのでそれを読むとわかります。
以下、例。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa): [enter for default]
Enter passphrase (empty for no passphrase): [password]
Enter same passphrase again: [password confirmation]
Your identification has been saved in /Users/user/.ssh/id_rsa.
Your public key has been saved in /Users/user/.ssh/id_rsa.pub.
The key fingerprint is:
46:1b:99:56:77:0b:38:1e:35:92:de:94:58:b4:f3:d4 user@machine.local

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwIuZA6ca9I1E2c06j1lbqvzDpZD2XQ5dRGVjeby1SGX+6
tyjA1zcN9mim9DXOWiX1wyUwGnQdNR3qmzJwjlX1riLpXoEutZxRHsvWyeQFsrWM8B5rJk0U0HDEEH+/9
u0SjGZZq0ERZE+L999ZzAYp7voxD7L7zFqp+odqNMpLln4A98JTBI50q5tVBQBbkh8wXHKPI0xLB1N9u7
VCLB8NzrR7/SC73/t3XicnhmaaPL8R+9GKyfRtjxAWyRGZiG+A9ZDXgQ9m6kNP2xS3AFi2jRvHfH2tnmy
+KD80sn9hwqTIMANVr2FjVloBHmi+FIHeL9qFbdI/4DCJMHt/hEdAw== user@machine.local

この cat でだした文字列すべてをUnfuddle
「Personal Settings」->「Public Keys」->「value」に放り込みます。
これで認証は通るはず。

4)Gitの設定とかいろいろ
ここまできたら、後は教科書通り。

$ git remote add unfuddle git@testgit.unfuddle.com:user/repo.git
$ git config remote.unfuddle.push refs/heads/master:refs/heads/master

上のやつで、リモートのGitサーバを指定(用語の使い方が間違っているかも)する。下のやつは、何だろうね。

5)コミットとプッシュ
ここで適当なファイルやディレクトリを作ってみる。そんでaddする。

$ git add *
$ git commit -am 'initial commit'

これはローカルの話。リモートにプッシュするには以下コマンドを使う。

$ git push unfuddle master

プッシュ、どーん。

上記4)の項目は、最初だけ。例えば別のマシンからチェックアウトするときは、cloneを使う。

$ git clone git@testgit.unfuddle.com:user/repo.git

GitのGUIクライアントもあるにはあるけれど、まだ完成度もさほど高くないし、Macならコマンドライン操作も悪くないので、当面はCUIでがんばろう。

今回紹介したUnfuddleはすべて英語表記になっているが、一応日本語にも対応している。ただし、これは以前自分が遭ったことなのだが、ある日を境に文字化けしていたことがあった。何かサーバ内をリセットか何かをしたときに重なったのかもしれないが、念のためと学習のため、英語で使ってみるのが良いかもしれない。