Bulknews::Subtech RSSフィード

2009/01/14 (水)

github で人のコードをいじる「前」にforkする必要はない 14:21  github で人のコードをいじる「前」にforkする必要はない - Bulknews::Subtech を含むブックマーク はてなブックマーク -  github で人のコードをいじる「前」にforkする必要はない - Bulknews::Subtech

git/github を使い始めてほぼ1週間ぐらい。よくできた分散SCMだなぁ、とおもう。とくに rebase とか stash なんか、svk でももちろんできるけどこういう機能が最初からついてるのは素敵。

で、github にプロジェクトをおいておくと fork ボタンがあってすぐに fork していじって commit/push して pull request ってのが素敵なわけだけど、とくにコミットもしないのにとりあえず fork だけしておく、っていうのがたまにみかけるのだけど、それって必要ないよね、って話。(や、別にやるなということではなく、単に勘違いしてやっているのもあるのではないか?と思ったりするので)

no title とかで、「とりあえず "fork" ボタンをおして fork したレポジトリをつくりましょう」とか書いてあるのでそれが原因なのかもしれないけど、git でとってきたプロジェクトにローカルパッチをあてるのに fork は必要ないです。

git clone git://github.com/miyagawa/remedie.git
cd remedie
# ファイルを編集
git ci ...

ローカルにある git の作業用ディレクトリは push されるまで remote (origin) とは関係ないので、パッチをあてていくら commit してもまったく問題ない。し、git://github.com/... で clone しているのでそもそも push することはできない。

You can't push to git://github.com/user/repo.git
Use git@github.com:user/repo.git

ちなみにこうやってパッチをあてた状態で remote からとってくるときは git pull でなくて git pull --rebase したほうが精神的にいいかもしれない(--rebase はローカルのパッチをいったんなかったことにしたあと pull で最新版にして再度アプライする)。

で、このローカルの変更を master に反映したい(してもらいたい)ときにはじめて、github 上で fork ボタンをおして fork をつくり、git remote add myfork git@github.com:username/remedie.git で remote に追加、git push myfork master で fork に対して push、でもって pull request を送るという手順がいいんじゃないかなとおもう(origin, myfork という名前が気に食わなければ .git/config を編集するなりして upstream, origin という具合に変更すればいいんすかね)。

まぁ fork ボタンを押すことで元の作者に「fork したよ」というメッセージが伝わるので、自分に対するモチベーション/プレッシャーをかけるという意味では先に forkしてしまう、というのもアリかもしれませんがね。

2009/01/07 (水)

Google Code から github にコードをうつしたメモ 16:51  Google Code から github にコードをうつしたメモ - Bulknews::Subtech を含むブックマーク はてなブックマーク -  Google Code から github にコードをうつしたメモ - Bulknews::Subtech

Simplistic Complexity を参考に。

googlecode のauthor フィールドを github にマッピングしておくとよいみたいなので、no title みたいなスクリプトを書いてマッピングファイルを作成。github に存在しない人やユーザ名が違う人は手動で対応。(とおもったんだけど元が googlecode なんだからユーザ名 @gmail.com にしておけばいいんだということに気づいた)

基本的には上記ページの通りで、git clone したあとに git remote rm origin で origin を削除した後、git remote add origin git@github... で github のURLを指定した。

http://github.com/miyagawa/remedie/tree/master