2009-03-31(火) [長年日記]
■ gist上のforkをmergeする
こないだ適当に書いたスクリプトがno6vさんによってforkされた。せっかくなのでgitでのパッチの取り込みをやってみる。gistも普通のgitなリポジトリなので、操作は同じ。
リモートリポジトリを指定していきなりpullするのもいいのだけど、ちゃんと差分を確認してからmergeするなら、まずはremoteに加えてからfetchなんだろう。ということで、no6vという名前でremoteリポジトリを作成して、そこにfetch:
% cd src/mobile_supers % git remote add no6v git://gist.github.com/87620.git % git fetch no6v remote: Counting objects: 5, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From git://gist.github.com/87620 * [new branch] master -> no6v/master
no6v/masterというブランチができて、gist上と同じ内容になった、ということ。これで手元で差分が見られる:
% git log -p master..no6v/master
ページャで差分が表示される。インデントがソフト2タブに変わってるので差分になってない! ><
……とはいうものの、内容に不満はない。というか、tapを使った配列の初期化とか、openのブロック引数の書き方とかカッケー。1.9スタイルをまざまざと見せ付けられたぜ。日ごろからちょっと古いrubyでも動くコードしか書かないだから新鮮だわ。
で、merge:
% git merge no6v/master Updating e3bfa90..562ee0f Fast forward mobile_supers.rb | 44 ++++++++++++++++++++------------------------ 1 files changed, 20 insertions(+), 24 deletions(-)
あとはcommitしてpushする:
% git commit -a -m "merged no6v's patch." Created commit 8529945: merged no6v's patch. 1 files changed, 30 insertions(+), 30 deletions(-) rewrite mobile_supers.rb (81%) % git push Counting objects: 8, done. Compressing objects: 100% (4/4), done. Writing objects: 100% (6/6), 1.19 KiB, done. Total 6 (delta 0), reused 0 (delta 0) To git@gist.github.com:87404.git e3bfa90..8529945 master -> master
と、gist上のコードも新しくなってる。ふむふむ。gitの良さがわかってきた。
ついでにgist.rbプラグインのテスト。なんで3タブで展開しないのかと小一時間(ry:
おぉ。gitの使い方とか勉強になります。
ソフト2タブなのはgit log -p -wで無視できると思います。
ほんとだ! > -w
あるとは思ってたけど、慌ててmergeしてしまったのでした。