とっても優しい github の使い方

最近ホントにRubyの人々の間でgit流行ってますよね。私はdarcsっこなのですが、これだけ周囲で流行られるとさすがに危機感を感じます。しかも最近はgithubやらgitouriousやらのやたらと便利なサイトが出現し、ましてRubyForgeまでもがgitを採用とのことですから、これはもうなんとかしておきたいところです。というわけで、今更ながらgitを覚える口実として、とっても便利なgithubを使ってみることにしました。

http://github.com/

そこでせっかくですからgithubの使い方をメモしておこうと思います。これを読んで皆さんも一緒にgithubで遊びませんか?

そもそもgithubとは何モノ?

github はgitレポジトリを公開してくれるサイトです。出来ることは大体のところ次のような事です。

  • 作者はレポジトリを作成して公開できます
  • 他の人はレポジトリをフォークして勝手に開発・公開できます
  • 作ったパッチを作者に適用して下さいよとお願いできます
  • wiki が使えます

特に重要なのはこの二番目。つまりgithubのレポジトリを使って開発されているソフトウェアにパッチを送りたい場合、githubを使ってフォークしちゃうのがとっても分かり易い方法となります。これだと他の人が何をやっているのかがすぐに分かってとっても良いですね。そういうわけで、たとえ自分自身でソフトウェアを作っている人でなくとも、githubのアカウントを作っておいた方が良いだろう思われます。

なお、現在はベータ版であり、無料かつ無制限に使用できます。将来有料版も登場する予定だそうですが、オープンソースなプロジェクトは有料版が登場しても無制限に利用できるようなので、そういった点での心配はないものと思います。安心してバンバン使って大丈夫ではないでしょうか。

アカウントの作成

現在のところgithubはベータ版ですのでアカウント申請をしてもすぐにアカウントをくれる保証はありません。トップページの下の方に"sign up for the github beta"とありますので、ここにメールアドレスを入力してしばらく待ちましょう。ただし私の場合はほとんど即座にアカウントが作成されました。

なお、既にアカウントを持っている人は、他の人に紹介状を送ることも出来ます。これだと即座にアカウントを作成できると思います。なので待ち切れない人は誰かアカウントを持っている人に頼んでみて下さい。私も三通分招待状を送れます。

ところでアカウントを作成するためには ssh の公開鍵が必要になります。ほとんどの方は既にお持ちかと思いますが、もし持っていない方は作成しておいて下さい。

ちなみに私のプロフィールページは次のものになります。

http://github.com/keita

レポジトリの新規作成(フォークじゃないよ!)

アカウントを作成したら、ダッシュボードが表示されると思います。最初はほとんど何も表示されていないので寂しく感じるかも知れません。では早速レポジトリを作成してみましょう。ただしこれから紹介するのは、フォークじゃなくって、あくまでも自分が作者の場合のものです。githubの他のレポジトリからフォークしたい場合のやり方は後で紹介致します。

ダッシュボードの右側に「Your Repositories (create a new one)」というのが見えるかと思います。まずはこの括弧内の"create a new one"をクリックしてみて下さい。すると、プロジェクトの名前、簡単な説明、ホームページのURLの三点を聞かれます。また最後にプロジェクトをパブリックにするかプライベートにするかを聞かれます。現在ベータ版で、また将来的には有料版が登場することを考えれば、ここはパブリックにしておいた方が無難です。

なお、githubはRubyのプロジェクトが多く登録されていますが、だからと言ってRubyのプロジェクトしか登録されていないわけではないことに注意しなければなりません。例えば RubyForge に登録しているプロジェクトのレポジトリを github に移行しようか、と考えている場合には、プロジェクト名にはちょっと気をつけておいた方が良いかも知れません。rubyのライブラリであれば ruby-* みたいな感じに接頭辞rubyを付けるなりして工夫をしておいた方が良い場合もあるかと思います。

さて、用意が出来たら submit ボタンを押して下さい!これでレポジトリが作成されます、とっても簡単ですね。次にやる事はレポジトリにファイルなどを追加することですが、どんなことをしたら良いかは親切なことにとっても詳しく解説が表示されていると思います。ruby-kizapiのレポジトリを作成した際に表示されてた解説を以下にコピーしておきます。

Next steps:

mkdir ruby-kizapi
cd ruby-kizapi
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@github.com:keita/ruby-kizapi.git
git push origin master

Existing Git Repo?

cd existing_git_repo
git remote add origin git@github.com:keita/ruby-kizapi.git
git push origin master

When you're done:

Continue

とっても親切ですね。まずは大体この手順に従ってレポジトリに何かをコミットしてみて下さい。

あ、私のようなgit初心者の方は、まず最初に

$ git config --global user.name "Keita Yamaguchi"
$ git config --global user.email [email protected]

のように名前とメールアドレスを設定しておいて下さい。これを忘れるとマシン名とかがコミットログに残って恥ずかしい感じになります。

そして一番大事なのが、コミットするなりして用意が出来たら、一番下の"Continue"をクリックする事です。見落としちゃいそうになるので、ご注意下さい!Continueを押して完了です。作成したプロジェクトの例として TimeoutX のプロジェクトページをご覧下さい。

http://github.com/keita/timeoutx/tree/master

wikiの編集に関する注意

githubはプロジェクト毎にwikiを利用できます。これはとっても手軽で良いですね!

ですが、ご注意下さい。私は日本語のwiki名を持つページを作成しようとして、なんとwiki全体を破壊してしまいました。おかげでhomeすら見れません。

http://github.com/keita/timeoutx/wikis

いずれ直してくれるのだろうとは思いますが、現在は日本語の扱いにちょっと慎重になった方が良いかと思われます。

あと、プロジェクト名に関する注意と同様ですが、やはりgithubはRubyだけのものではないのでwikiのドキュメントに関してもRubyForgeから移行する方は「これはRubyのライブラリです」的なことを書いておいて方が良いのではないかと思います。

フォーク

プロジェクトに貢献したい人はレポジトリをフォークしてそこでパッチを作成しちゃいましょう。フォークはとっても簡単です。プロジェクトページのフォークボタンを押すだけであっと言う間に完了です。フォークしたプロジェクトは元のものと「ネットワーク」で繋がりますが、完全に独立したレポジトリとなりますので自分の好きなようにいじって構いません。またwikiも独自のものになります。

フォークのテストをしたい人は私のプロジェクトを適当にフォークして実験してみて下さい。フォークしたものは簡単に消すことも出来ますのでお気軽にどうぞ。

感想

githubはとっても便利で素晴しいと思います。wikiの問題だけは早いところ何とかならないかなぁと期待していますが、慌てずゆっくりと待つことにします。