Git/Github超入門:猿でもできるPull Request

Git/Github初心者のみなさんこんにちわ!

Pull Requestを送ってみたいけど、やり方がわからない?
間違ったPull Requesするのがこわくて躊躇している?

もったいない!
そんなみなさんに、Pull Requestを送るための最小の手順をご紹介します。

昨日ちょうどEthnaにPull Requestを1件送ったので、これを題材にして説明します。

以下、Githubのアカウント取得、gitのインストール、SSH鍵の設定は終わっているものとして解説をすすめます。

Pull Requesを送る最小手順

1.ブラウザで本家プロジェクト画面を開きます。 例:https://github.com/ethna/ethna
2.forkボタンを押します。
3.以下、自分のPCで作業
git clone git@github.com:DQNEO/ethna.git
cd ethna
git checkout -b feature/hoge develop # developブランチ(注1)を元に"feature/hoge"ブランチを作成し、そこに入る
# エディタでソースコードを編集
git add .
git commit -m "bugfix: fixed hoge" # ローカルにコミット
git push origin feature/hoge  # githubサーバに送信
以上でPCの作業は終了。

4.ブラウザで、自分のプロジェクト画面を開きます。例:https://github.com/DQNEO/ethna
5.画面右上の"Pull Request"を押します。
6.プルリクエストの範囲指定が求められます。
  画面左側に、Pull Request受け手となる本家のブランチ名を、画面右側に、さっき作った自分のブランチ名を設定します。
  この場合、左側を"ethna/ethna@develop"に、右側を"DQNEO/ethna@feature/hoge" に設定します。
7."Update Commit Range"を押します。
8.コミット範囲を確認して、OKなら"Send Pull Request"を押します。

注1
Ethnaでは、
「pull requestはmasterにではなくdevelopブランチに送ること」
というルールになっています。
これはつまり、「本家のdevelopブランチを、あなたの側で派生させてそこで改修し、本家のdevelopに還元してほしい」ということです。

Pull Requestがマージされたら

おめでとうございます!
あなたのコードが本家に取り込まれました。

実はここからが問題なのです。
本家の方は今後どんどん開発が進んでいくわけですが、
あなたのPC上のレポジトリと、Github上にある(forkした)あなたのレポジトリは、古いままなのです。

これらを本家に追従させる必要があるのですが、これが意外と難しいのです。
(pullとかfetchとかremoteとかupstreamとかrebaseとかいろいろ勉強しないといけない)

そこで私からのアドバイス。

あなたのPC上のレポジトリと、Github上のあなたのレポジトリを、思い切って削除してしまいましょう。
何もがんばって追従するは必要ありません。
がんばって追従しようとすると、たぶん挫折するでしょう。(私は一度挫折しました。)

Pull Requestの本質は、「パッチを送る」「貢献する」ことです。
だから用が終わったらレポジトリごと削除してしまってもよいのです。

次のPull Requestを送りたくなったら、またこの記事の手順1からやればよいのですから。

一番大事なこと

あえて言います。
大事なのは、「間違ってもいい」ということ。

「失敗しちゃいけない」とか「こういうのは絶対やってはいけない」とか、そういう風に考える必要はありません。
間違えて送ったプルリクエストは、たぶん承認されないでしょう。それだけのことです。
「すいません、やり直します」と言ってやり直せばいいのです。

おまけ

この記事を読んでくれたひとのために、Pull Request練習用レポジトリを作りました。

https://github.com/DQNEO/Renshu

forkするなり、Pull Requestを送るなり、お気軽に試してみてください。


「世の中知らないことがあってもへっちゃらさ」
Larry Wall-プログラミングPerl より

Enjoy !
カテゴリ: