2012-02-07
もし FuelPHP のバグを見つけたら (3)〜バグ修正コードを Pull Request する方法
の続きです。
前の記事を読んでいない場合は、先に読むことをお薦めします。
今日は、バグを修正するための Pull Request の送り方について解説します。
FuelPHP のリポジトリを fork する
まず、対応するリポジトリを GitHub の Web ページに行って fork します。
ここでは、
を fork します。
「Fork」ボタンを押して fork します。
以下のように自分のリポジトリが作成されました。デフォルトではリポジトリ名は fork 元と同じになりますが、「core」だけではわかりにくいので「fuel-core」に変更してあります。
これで、準備完了です。
fork した自分のリポジトリを手許の PC に clone する
git clone します。
$ git clone git@github.com:kenjis/fuel-core.git
Cloning into fuel-core...
remote: Counting objects: 21591, done.
remote: Compressing objects: 100% (6467/6467), done.
remote: Total 21591 (delta 15071), reused 21164 (delta 14683)
Receiving objects: 100% (21591/21591), 3.33 MiB | 356 KiB/s, done.
Resolving deltas: 100% (15071/15071), done.
FuelPHP のリポジトリを remote リポジトリに追加します。名前は「upstream」とします。
$ cd fuel-core $ git remote add upstream git://github.com/fuel/core.git $ git fetch upstream
remote: Counting objects: 42, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 34 (delta 26), reused 33 (delta 25)
Unpacking objects: 100% (34/34), done.
From git://github.com/fuel/core
* [new branch] 1.0/develop -> upstream/1.0/develop
* [new branch] 1.0/master -> upstream/1.0/master
* [new branch] 1.1/develop -> upstream/1.1/develop
* [new branch] 1.1/master -> upstream/1.1/master
* [new branch] feature/better-hmvc -> upstream/feature/better-hmvc
* [new branch] feature/loader -> upstream/feature/loader
* [new branch] feature/pkg-loader -> upstream/feature/pkg-loader
* [new tag] v1.1 -> v1.1
バグ修正を commit する
Pull Request は開発ブランチに送る必要があります。現在は、1.1/develop になりますので、1.1/develop へ移動します。
$ git checkout 1.1/develop
バグ修正を commit する前に、Pull Request 用のブランチを作成します。1つの Pull Request ごとに必ず 1つのブランチを作成します。もし、ブランチを作成しないと 2つ以上の Rull Request を送信できなくなります。また、後で同じブランチに commit し、GitHub へ push すると、送信した Pull Request に追加されてしまいます。
ブランチ名は何でも構いませんが、ここでは「fix_form」というブランチ名にします。
$ git checkout -b fix_form
バグを修正します。
FuelPHP の コーディング標準 に準拠したコードを書きましょう。
ユニットテストが書ける場合はテストも追加します。fuel/TESTING.md at 1.1/master ? fuel/fuel ? GitHub を参考にします。
変更したファイルを git add し、commit します。sign-off を忘れずに。
$ git commit -s
GitHub へ push する前に
本家リポジトリを clone して、すぐに Pull Request を送る場合はいいのですが、時間が経つと本家での開発が進みます。
Pull Request を送る前に、本家の最新の状態に追随しておきましょう。そうしないと、Pull Request がうまくマージできない可能性があり、取り込まれない可能性があります。
まず、1.1/develop を最新の状態にします。
$ git checkout 1.1/develop $ git fetch upstream $ git merge upstream/1.1/develop
1.1/develop での変更を Pull Request 用のブランチに取り込みます。
$ git checkout fix_form $ git rebase 1.1/develop
コンフリクトが起きなければこれで完了です。
運悪くコンフリクトが起きてしまった場合は、コンフリクトを修正して git add し、
$ git rebase --continue
として rebase を完了させてください。
GitHub へ push する
GitHub の自分のリポジトリに Pull Request 用のブランチを push します。
$ git push origin fix_form
Counting objects: 22, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (13/13), 1.55 KiB, done.
Total 13 (delta 9), reused 0 (delta 0)
To git@github.com:kenjis/fuel-core.git
* [new branch] fix_form -> fix_form
Pull Request を送る
GitHub にアクセスし、push したブランチを確認します。
ブランチが正しいことを確認し、「Pull Request」ボタンを押します。
Pull Requet を送る (送信先) ブランチが正しいことを確認します。もし違う場合は、右側の「Change Commits」ボタンを押すと変更することができます。
タイトルと本文を記入します。「Preview」タブを押せば、プレビューできます。
「Files Changed」タブを押せば、変更点を確認できます。
記入が完了したら、「Send pull request」ボタンを押すと Pull Request が送られます。
問題がなければ、本家リポジトリにマージされます。
「 もし FuelPHP のバグを見つけたら (4)」へつづく。
- 18 http://codeigniter.com/forums/viewthread/208731/
- 12 http://codeigniter.jp/blog/article/64
- 10 http://www.google.co.jp/url?sa=t&rct=j&q=fuelphp&source=web&cd=3&ved=0CEgQFjAC&url=http://d.hatena.ne.jp/Kenji_s/20111117/1321519058&ei=D8ovT6KXCa3wmAWzzsjODw&usg=AFQjCNHC280Gu_hfL_3DYarBvvMVnwPRXQ&sig2=m3cWvUynSYRKPFui9ZyVJQ&cad=rja
- 9 http://fuelphp.phpfogapp.com/wiki/
- 8 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDAQFjAB&url=http://d.hatena.ne.jp/Kenji_s/20110722/1311314734&ei=F3swT_jbDoHPmAW4h9XlBQ&usg=AFQjCNGX3IXEP1AYFX99-MMssRwinbzGFw
- 6 http://weble.org/2011/09/06/codeigniter-beginner
- 4 http://atnd.org/events/22380
- 4 http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCUQFjAA&url=http://d.hatena.ne.jp/Kenji_s/20110824/1314152547&ei=DpUwT-mdL6yeiAf71cjnBA&usg=AFQjCNH6TkbN08Yxthqa1pcUXJ99n39EIw&sig2=jB6b5ycZop2FNloLkW820Q
- 3 http://d.hatena.ne.jp/
- 3 http://ow.ly/8UzLM






