Rails
ポエム
OSS
147
どのような問題がありますか?

投稿日

更新日

OSS初心者がRailsにプルリクエストを送ってマージされるまでの一部始終

はじめに

本稿はOSSにプルリクエストを送ったことがない方に対する「自分はこういう方法でプルリクエストを送ったぞ!」という体験記として投稿させて頂きます。初心者であってもOSSに興味がある方にはご一読頂ければ嬉しいです。

前提

GitHubを使って開発をしたことがある前提の内容が一部含まれます。
(これからの方にもなるべく分かるように書きますが念のため)

今回出来たこと

Rails本体に送ったプルリクエストがマージされました:tada:
image.png

Rails Contributors掲載サイトに載った
image.png

オレンジの部分が自分の名前(畏れ多い)
image.png

OSSにプルリクエストを送る手順

OSSごとにコントリビューション(貢献)におけるガイドラインがあるので、まずそちらに目を通しましょう。

※ Railsの場合は以下を参照!
https://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html

目次

  1. プルリクエストを送りたいリポジトリをForkする
  2. 自分の手元のリポジトリを確認
  3. 自分の手元にForkしたリポジトリをローカルにcloneする
  4. ローカルでブランチを切る
  5. 修正をコミット
  6. テストが通ることを確認
  7. git remote -vでリモートとして登録されているリポジトリを確認する
  8. 本体をupstream,自分のリポジトリをoriginとして登録する
  9. もう一度remoteとして登録されているリポジトリを確認
  10. origin(自分の作業リポジトリ)へプッシュする
  11. 本体のリポジトリを開いてプルリクを出す
  12. マージを待つ

1. プルリクエストを送りたいリポジトリをForkする

※ Forkが分からない方はこちらを参照 :リポジトリのcloneとforkの違い

image.png

2. 自分の手元のリポジトリを確認

image.png

3. 自分の手元にForkしたリポジトリをローカルにcloneする

$ git clone git@github.com:Shigeyuki-fukuda/rails.git

4. ローカルでブランチを切る

$ git checkout -b ブランチ名

5. 修正をコミット

$ git commit -m "英語のコミットメッセージ"

6. テストが通ることを確認

テストを実行したところテストが落ちてたのですが...
修正と関係ないところだったので、今回は一旦、無視しました。
(この修正の時master自体のCI落ちてた?のもあり一旦スルー)
通常は注視した方がいいかもです。

$ rake test

7. git remote -vでリモートとして登録されているリポジトリを確認する

Shigeyuki-fukuda/rails がremoteのoriginとして登録されていることを確認。

※ Git初心者の方へ
remoteというのはコミットして修正をプッシュする目的地というイメージ
例えばgit push origin masterorigin部分のことです。

$ git remote -v
origin  git@github.com:Shigeyuki-fukuda/rails.git (fetch)
origin  git@github.com:Shigeyuki-fukuda/rails.git (push)

8. 本体をupstream,自分のリポジトリをoriginとして登録する

OSSの慣習で元のリポジトリをupstreamとし、自分の手元をoriginとして登録するみたいです。

$ git remote add upstream https://github.com/rails/rails.git
$ git remote add origin git@github.com:Shigeyuki-fukuda/rails.git

9. もう一度remoteとして登録されているリポジトリを確認

これでFork元のrails/railsの方がupstreamならOKです。

$ git remote -v
origin  git@github.com:Shigeyuki-fukuda/rails.git (fetch)
origin  git@github.com:Shigeyuki-fukuda/rails.git (push)
upstream  https://github.com/rails/rails.git (fetch)
upstream  https://github.com/rails/rails.git (push)

10. origin(自分の手元の作業リポジトリ)へプッシュする

origin へプッシュする

$ git push origin 修正ブランチ名

11. 本体のリポジトリを開いてプルリクを出す

キャプチャ忘れてしまったのですが、本体のリポジトリを開くとプルリクを出せるぞ!という表示が通常通り出ます。
Fork先にプッシュしても本体にプルリク出せるよ!の表示が出るのでそこからプルリクを作ります。

こんな感じのやつ↓↓↓

image.png

当たり前ですが説明文は英語なので頑張りましょう。
※ ブラウザで出来る英文チェッカー
http://lifeiscolourful.hatenablog.com/entry/grammarly-n-writing

image.png

12. マージを待つ

無事にプルリクエストがマージされたことを確認しました :sob:

image.png

補足:remoteの最新をoriginに取り込みたいとき

git fetchでupstream(元のリポジトリ)の最新を取ってくる

$ git fetch upstream

upstream(元のリポジトリ)の最新をorigin(自分の手元)にマージする

$ git merge upstream/master

remoteの自分管理のリポジトリを最新にしたい場合はそのままプッシュする
※ 絶対に元のリポジトリ(upstream)のmasterにプッシュしてはいけません

$ git push origin master

最新の状況になったことを確認します

image.png

最後に

はじめる前は、すごい複雑で一部の「選ばれし人々」によって行われる活動がOSSだと思ったのですが、やること自体はシンプルでした。「ここ直した方がいいかも?」と思ったところを修正して、それがマージされるのは皆んなの公園を綺麗にしたみたいで気分がいいですね!!
皆さんもぜひOSSに一歩踏み出してみてはいかがでしょうか?

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ユーザー登録ログイン
fuqda
バックエンド出身のフロントエンドエンジニアです。 過去にTama.rbという地域Rubyコミュニティを主催していました。

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
Remote TestKitを使ってレビューを書こう!
~
買ってよかった技術書を紹介しよう!
~
147
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
ユーザー登録ログイン
ストックするカテゴリー