2009-05-14(木) [長年日記]
■ gitでforkなどを経験してみた(またはwassr2twitterを導入)
えちょさんがwassr2twitterというのを公開していた。Wassrの自分のタイムラインをごっそりTwitterの特定のアカウントに流し込むというだけのスクリプトなのだが、これができると選択肢の多いTwitterのクライアントでWassrが読めるようになる。具体的にはiPhoneでNatsuLionとか*1。
せっかくコードがGitHub上にあるので、WEB+DB PRESS Vol.50で「はじめてのGit」を読んだばかりということもあり、それっぽい開発を体験してみることに。「はじめてのGit」はとてもいい記事なので、git使ってる人は読むべきです*2。
9784774138381
まずは本家リポジトリ上で「fork」をクリック。すると自分のところに新しいリポジトリが増える。forkと言っても、gitのリポジトリはすべて対等なので、これも独立した立派なリポジトリである。あとは基本的にこっちをいじる。
まずは開発マシン上でclone:
% git clone git@github.com:tdtds/wassr2twitter.git % cd wassr2twitter (... Pit対応する) % git commit -a -m 'supported Pit.' (... Proxy対応する。commitの単位は細かく![←師の教え]) % git commit -a -m 'supported http_proxy.' % git push (↑ここでpushする先はGitHub上の自分のリポジトリ)
あとは本家に「このパッチ取り込んでちょ!」とお願いする。自分のリポジトリページにある「pull request」をクリック。(たぶんfork元ということで自動的に入っている)「Select Recipients」のEchosさんにチェックを入れて、メッセージとともにリクエストを送ればよい。
……で、これをマージする体験はまだしてないんだけど(笑)、えちょさんによれば単にマージするだけならWeb上でできるそうだ。GitHubスゲー。
両者のリポジトリがどうなっているのかは、これもGitHub上で見ることができる(ページ右端にある二股に分かれた矢印のアイコン)。いろんな目的別にブランチを切りながら開発をすると面白いことになりそう。
今後、本家の開発が進んだら、その差分を自分の方に取り込んだりするのだろう。直接pullしても良いけど、remoteを作って、fetchしてからmergeするという流れで作業する方が良いと思うので、そうしておく:
% git remote add echos git://github.com/Echos/wassr2twitter.git % git fetch echos (echos/masterがローカルにコピーされる) % git merge echos/master
しかしなんだ。まさかアイマスクラスタの人とコードのやり取りをすることになるとは想像もしてなかった。
github便利なのでこれでWebページも管理するぜーとかやってたんですけど、昨日ひょんなことから
http://username.github.com/
ってなページをリポジトリで持てることを知りました。上記の形式でアクセスすると設定方法とか書かれてます。いやーgithub恐るべし…。
その技は、私の周辺では少し前に話題になったので試してみようかと思ったんですが、github.com上にwebサイトを持ちたいかというとそうでもないことに気づいたのでやめたんですよね(笑)。特に自分のドメインを持ってる場合は。