メモ > 技術 > 開発: Git > フォークとプルリクエスト
フォークとプルリクエスト
公開リポジトリで不特定多数に公開するなら、知っておくといい。
Sourcetreeを例に記載。
GitHubを使うなら最低限知っておきたい、プルリクエストの送り方とレビュー、マージの基本 (1/2):こっそり始めるGit/GitHub超入門(10) - @IT
http://www.atmarkit.co.jp/ait/articles/1702/27/news022.html
【GitHub】Pull Requestの手順 - Qiita
https://qiita.com/Commander-Aipa/items/d61d21988a36a4d0e58b
SourceTree で GitHub の Fork レポジトリを追加&同期する方法 - Qiita
https://qiita.com/katzueno/items/967c14044982fb6dec65
■フォークの作成
自身のアカウントでGitHubにログインした状態で
https://github.com/refirio/test
など対象リポジトリにアクセスし、ページ右上の「Fork」をクリックする。
数秒待つと
https://github.com/(自身のアカウント)/test
にForkされる。
(複数のリポジトリを持っている場合、フォーク先を確認される。)
※Bitbucketの場合、対象リポジトリにアクセスして。
「… → Fork this repository」をクリックするとフォークできる。
フォークの際、「Workspace」「プロジェクト」「名前」を入力する。
■プルリクエストの送信
Sourcetreeでローカルにクローンする。
クローン後、「develop」ブランチにチェックアウト。
「develop」ブランチから「feature/test」ブランチを作成して作業&コミット。
「feature/test」ブランチを「develop」ブランチにマージしてプッシュ。
(もしくは直接「develop」ブランチで作業してプッシュ。)
自身のGitHub上に「Compare & pull request」ボタンが表示されるのでクリック。
プルリクエスト入力画面になるので、必要に応じて内容を入力し「Create pull request」ボタンをクリック。
(マージ先とマージ元の両方が「develop」になっていることを確認する。「master」などになっていたら変更する。)
プルリクエスト送信完了。
■プルリクエストの受信
https://github.com/refirio/test/pulls
にアクセスし、プルリクエストが届いていることを確認する。
「Merge pull request」ボタンをクリック。
必要に応じてコメントを編集し、「Confirm merge」ボタンをクリック。
(ここで編集したコメントは、マージのコミットのコメントとして反映される。)
マージ完了。
■プルリクエストを送信する実例
※freoを例にして実際に手順を解説。
自身のアカウントでGitHubにログインした状態で
https://github.com/refirio/freo
にアクセスし、ページ右上の「Fork」をクリックする。
数秒待つと
https://github.com/(自身のアカウント)/freo
にForkされた。
(複数のリポジトリを持っている場合、フォーク先を確認される。)
Sourcetreeでローカルにクローンする。
クローン後、「develop」ブランチにチェックアウト。
「develop」ブランチから「feature/test」ブランチを作成して作業&コミット。(作業に応じた名前のブランチを作成する。)
「feature/test」ブランチを「develop」ブランチにマージしてプッシュ。
(もしくは直接「develop」ブランチで作業してプッシュ。)
自身のGitHub上に「Compare & pull request」ボタンが表示されるのでクリック。
プルリクエスト入力画面になるので、必要に応じて内容を入力し「Create pull request」ボタンをクリック。
(マージ先とマージ元の両方が「develop」になっていることを確認する。「master」などになっていたら変更する。
マージ先ユーザが「refirio/freo」になっていることも確認する。)
プルリクエスト送信完了。
■フォーク元の更新を取り込む実例
※freoを例にして実際に手順を解説。
親リポジトリのURLをメモしておく。今回は以下のURLになる
https://github.com/refirio/freo.git
Sourcetreeで「設定」をクリックする。
「リモート」タブで「追加」をクリックする。
リモート名: freo(何でもいい)
URL/パス: https://github.com/refirio/freo.git
と設定して「OK」をクリックする。
もとの画面に戻るので、さらに「OK」をクリックする。
これでリポジトリが追加できた。
Sourcetreeでmasterブランチに切り替える。(masterブランチに更新を取り込む場合。)
ツールバーの「プル」をクリックする。
次のリモートからプル: freo(先程登録したリモート名。)
プルするリモートブランチ: master(何も表示されなければ、いったん「更新」をクリックする。)
「OK」をクリックすると、更新を取り込むことができる。
ツールバーの「プッシュ」をクリックし、取り込んだ更新を自身のリモートリポジトリにプッシュしておく。
これでフォーク元の更新を取り込むことができた。
必要に応じて、developブランチにも更新を取り込んだり、自身のfeatureブランチにマージしたりする。
■その他
main(master)ブランチ宛にプルリクエストが来たが、いったんdevelopブランチに取り込みたい。
…のような場合、プルリクエストの向き先を変更できる。
【地味に便利】GitHubでPull Requestの向き先を変更する方法 - Qiita
https://qiita.com/ryoichi-u/items/60d38a1054ddc09e4450