タイポしてるよ!と言う代わりにpull requestを送る

かつてyihuiさん(knitrのひと)がこんなことを言ってました。

You Do Not Need to Tell Me I Have A Typo in My Documentation | Yihui Xie

タイポしてるよ!とか言ってるひまあるならpull request送ってね、と。なるほど、蓋し正論です。

ただ、↑のブログ記事からはや2年、Githubは進歩していて、簡単なタイポとかリンク切れの修正のpull requestくらいなら、ブラウザ上から送ることができるようになっています。

もうどっかに解説ページある気もしますが、ちょっとTimelineJSにリンク切れの修正pull requestを送りたくなったので、ついでにやり方をメモっておきます。とはいえ、まだそんなにGithub慣れしてるわけじゃないので、間違いの指摘とかアドバイスいただけるとありがたいです!

修正したいファイルの編集画面を開く

今回修正したいのは、READMEの中のリンク切れです。まずはREADMEのファイルの編集画面を開きます。赤の矢印で示した鉛筆アイコンをクリックするといけます。

TimelineJS/README.markdown at master · NUKnightLab/TimelineJS · GitHub

f:id:yutannihilation:20150301110524p:plain

え、元レポジトリのファイルを直接いじるとかいいの!?と思ったひともいますよね。安心してください、編集画面の上にはこんな注意書きがついています。

You're editing a file in a project you don't have write access to. We've created a fork of this project for you to commit your proposed changes to. Submitting a change to this file will write it to a new branch in your fork, so you can send a pull request.

編集ボタンを押した瞬間にレポジトリがフォークされていて、今編集しようとしているのはその自分の方にフォークしたレポジトリのファイルなのでした。で、この差分をそのままpull requestとして投げることができます。

※編集権限があったら元ファイルを編集しちゃうので注意しましょう!

修正と確認

タイポとかリンク切れを修正して、問題ないか確認します。Markdownファイルの場合は、「Preview changes」というタブをクリックすると、編集後のファイルのプレビューが表示できます。

f:id:yutannihilation:20150301112311p:plain

編集された行の左側にはオレンジ色の帯がついています。

f:id:yutannihilation:20150301112719p:plain

今回はリンク切れの修正なので、いちおうリンクをクリックして正しい場所に飛ぶことを確認しました。

コミットコメントを書く

問題なさそうなら、この変更を保存します。そのためにはコミットコメントを書かなくてはいけません。

f:id:yutannihilation:20150301113028p:plain

見れば分かる修正なのでそれほどかしこまったコメントを書く必要はないと思います。たぶん、「fix typo in README」とか「fix broken link in README」とかでしょうか。(英語得意なひと教えてください。。)

書いたら「Propose file change」を押します。

差分を確認してpull requestを投げる

たぶんこんな画面になるはずです。

f:id:yutannihilation:20150301114137p:plain

下の方で変な差分が紛れ込んでいないか確認したら、「Create pull request」を押します。すると、いよいよpull requestをつくる画面になります。

コメントには、「いつもありがとうございます!」「このライブラリまじすごいっす! 尊敬してますアニキ/姐さん!」みたいなことばをひとこと添えると印象いいんじゃないでしょうか。書き終わったら「Create pull request」ボタンを押します。

f:id:yutannihilation:20150301114844p:plain

これでpull requestができました。あとは反応を待つだけです。

fix a broken link in README by yutannihilation · Pull Request #767 · NUKnightLab/TimelineJS · GitHub

注意点

これは、簡単なタイポとかリンク切れならいいですが、コードを修正するような場合はやってはいけません。フォークしたレポジトリをクローンしてブランチ切って手元で動くことを確かめて、という手順をちゃんと踏みましょう。

レポジトリによってはpull requestの投げ方の作法が定められているものもあります。CONTRIBUTIONみたいな名前のファイルとかREADMEのセクションがあればちゃんと読んでからにしましょう。

まとめ

ということで、承認欲求に飢えている人は、有名レポジトリのドキュメントでタイポとかリンク切れを探してpull requestを送りまくりましょう!