トップ 最新

ただのにっき

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:

Tags: git