LoginSignup
0
0

More than 3 years have passed since last update.

GitHubのForkとPull Requestについて簡潔に説明してみた

Last updated at Posted at 2020-05-31

はじめに

Gitでは登場しない、
GitHub特有のForkとPull Requestについて説明します。
Forkを説明する際、cloneとの違いを出してくる解説がありますが
「なぜcloneではなくforkでないといけないのか」といった部分についても触れます。
それが分かるとより理解しやすくなると思います。

Forkを一言でいうと

他の人が作成した(リモート)リポジトリを、
自身の(リモート)リポジトリに複製すること

ForkしたリポジトリをローカルにCloneして、作業を行います。
流れを図1に表しました。

【図1】
image.png

Forkってなんで必要なの?

Forkの説明で、「他の人が作成したリポジトリを直接Cloneすればいいだけでは?」と
思った方がいると思います。
ここが、Forkを使う理由に繋がっています。

GitHubのデフォルトの設定では、
他の人が作成したリポジトリに対してPushする権限がありません。

(GitHubの設定で、作成者が他の人にPush権限を与えることも可能ですがここでは触れません。)

ローカルで編集したソースを自由にPushするためにForkを使うのです。

Pull Requestを一言でいうと

自身の(リモート)リポジトリを、
他の人が作成した(リモート)リポジトリに
Pushしたいです(=Pullして下さい)と提案(通知)すること

Fork~Pull Requestの流れを図2に表しました。
オレンジの部分が図1に追加で記載した箇所です。

【図2】
image.png

Pull Requestってなんで必要なの?

この理由は至ってシンプルです。
第3者が相手の許可なしに勝手に変更すると、相手が困るからです。
「変更した内容をあなたのリポジトリに反映したいのですが、宜しいですか?」と
伺いを立てる必要があります。

まとめ

・Forkを1言でいうと
 他の人が作成した(リモート)リポジトリを、
 自身の(リモート)リポジトリに複製すること

・Pull Requestを1言でいうと
 自身の(リモート)リポジトリを、
 他の人が作成した(リモート)リポジトリに
 Pullして下さいと相手に提案(通知)すること

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0