Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
122
Help us understand the problem. What is going on with this article?
@YumaInaura

Github で Fork して PullRequest を送るのはこんなに簡単

More than 1 year has passed since last update.

ふぉーくで始めるぷるりくえすと

image.png

「Fork ってなにそれ、怖い」

そんな風に思っていた昔の自分に贈る。

そういえば当時、解説ページを一瞬読んで、なんだか難しそうだと思って閉じてしまっていたような記憶もある。

で Fork って何?

ひとつのレポジトリを丸コピして、自分のレポジトリを作れる機能。

(どういうこと?)

「つまり、やりたい放題ってことだ!」

Pull Request と何の関係が?

僕が思うに、ここが分かりづらい。
言葉の響き的に関係してるような気がしない

(フォークは‥肉を食べるための‥道具‥!)

Githubでは、このForkという機能を「利用」して、本体のレポジトリを汚さずに、安全にPullRequestを送れる仕組みがある。

ここでは「PullRequestを送るための手順」ぐらいに考えておいたら良い。

試してみよう

好きなレポジトリを Fork する

好きなレポジトリを選んで、 Fork ボタンを押す。
押してみろ。そこから全ては始まる。

image.png

Fork される

自分のレポジトリが作成される。
本体のレポジトリからのクローンだ。

image.png

この例だと stympy/faker のコピーとして Yumainaura/faker が作られたのが分かる。

Forkした自分のレポジトリにコミットを積む

ブランチは何でも良い。

コミットを積んで push してみる。

ここでpushしたりbranchを作ったりという作業は、あくまで自分のレポジトリに対してのものなので、何をしても本体のレポジトリは汚さないし、壊さない。(これがForkの良いところ)

本体のレポジトリにPullRequestを送る

自分のレポジトリ の「Create Pull Request」ボタンを押してみよう。
( 本体レポジトリの「Create Pull Request」からは進めないので注意)

「本体のレポジトリのブランチ」に対して「自分のレポジトリのブランチ」のPullRequestを作れるのが分かるだろう。

image.png

こうやってレポジトリをクローンして、git的に安全な状態を保っておきつつ、つつましく本体レポジトリにPullRequestを送るというのが、Forkの礼儀正しさだ。

PullRequestが作成される

画像は、それがやがてマージされた例。

image.png

いかがだろう

簡単さの感触が伝われば幸いだ。

あわせて読みたい

ここでは「Fork式」のPullRequestを紹介したが「レポジトリ共有式」のPullRequest作成を理解していることが前提となる。

PullRequest自体に慣れていない人は自分だけのまっさらなレポジトリを作って、色々と遊んでみたら良いかも知れない。

122
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
YumaInaura
Ruby on Rails 業務経験 約5年 / Perl PHP Python Golang Linux Apache MySQL BigQuery Jenkins ansible AWS など / いなうらゆうま / YumaInaura / 稲浦悠馬

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
122
Help us understand the problem. What is going on with this article?