Thursday, April 2, 2009

Pulling forked changes with git - an example

うれしいことに、拙作 script/refactor を改善する変更の pull request のメッセージが届いていたので早速、 pull しようと思ったけど手間取ってしまったのでそのメモです。

GitHub のガイド wiki には Pull Requestsがあるんですけど、手元の git (v 1.6.2.1) では、そのまんまだとリモートブランチとローカルブランチの名前が同じになってしまって、何かすると
warning: refname 'tjsheehy/master' is ambiguous.

のような warning が出て気持ちわるい。

試行錯誤の結果、シンプルにローカルブランチは作らずに master ブランチで pull して GitHub に push しました。
$ git remote add -f tjsheehy git://github.com/tjsheehy/script-refactor.git
$ git pull tjsheehy master
$ git commit


また、CHANGELOG をつくるのには、
$ git log --pretty=format:"* %s [%an] %h" | cat
こんな感じでログをフォーマット指定の pager なしで吐いて、切り貼りしました。


でも、あれですね。メジャーなプロジェクトをホストしている人は pull request 来まくって、ウザいでしょうね。

あと思うのは、 ssl_required など、とりあえず GitHub に引っ越しただけのプロジェクトとか fork されまくってるけど全然本家にマージされてないやつとかどれ使っていいのかわからなくて困りますね。Network グラフをみてどのリポジトリの本気度が高いか見極める必要があるし。

No comments: