pull requests について
pull request は、あるブランチから別のブランチに一連の変更をマージする提案です。 pull request では、コラボレーターは、変更をメインコードベースに統合する前に、提案された一連の変更を確認して議論できます。 pull request には、ソース ブランチ内のコンテンツとターゲット ブランチ内のコンテンツの違い (diff) が表示されます。
メモ: pull request を使う際には以下のことを念頭に置いてください:
- 共有リポジトリ モデルで作業している場合は、pull request にトピック ブランチを使用することをお勧めします。 ブランチあるいはコミットからプルリクエストを送ることもできますが、トピックブランチを使えば提案した変更を更新する必要がある場合、フォローアップのコミットをプッシュできます。
- コミットを強制的に pull request にプッシュする場合は十分に注意してください。 プッシュを強制すると、リポジトリの履歴が変更され、pull request が破損する可能性があります。 他のコラボレーターが強制プッシュの前にプロジェクトを分岐すると、そのコラボレーターが作業のベースにしたコミットが上書きされる可能性があります。
pull request は、GitHub.com、GitHub Desktop、GitHub Mobile で、GitHub CLI の使用時に作成できます。
プルリクエストを初期化すると、あなたのブランチ(比較ブランチ)とリポジトリのベースブランチとの差異の高レベルの概要を示すレビューページが表示されます。 提案した変更の概要を追加したり、コミットによる変更をレビューしたり、ラベルやマイルストーン、アサインされた人を追加したり、個人のコントリビューターや Team に @mention したりできます。 詳しくは、「pull request の作成」を参照してください。
プルリクエストを作成したら、トピックブランチからコミットをプッシュして、それらを既存のプルリクエストに追加できます。 それらのコミットは、プルリクエスト内で時系列順に表示され、変更は"Files changed(変更されたファイル)"タブで見ることができます。
他のコントリビューターは、あなたが提案した変更をレビューしたり、レビューコメントを追加したり、プルリクエストのディスカッションにコントリビュートしたり、さらにはプルリクエストにコメントを追加したりできます。
提案された変更に満足したなら、プルリクエストをマージできます。 共有リポジトリモデルで作業している場合は、プルリクエストを作成し、あなたか他のユーザが、プルリクエストで指定したベースブランチにフィーチャブランチからの変更をマージします。 詳しくは、「プル要求のマージ」を参照してください。
リポジトリでステータスチェックが要求されているなら、必須のステータスチェックをパスしてからでないと保護されたブランチにあなたのブランチはマージできません。 詳しくは、「保護されたブランチについて」を参照してください。
pull request をイシューにリンクして、修正が進行中であることを示し、誰かが pull request をマージしたときイシューを自動的にクローズすることができます。 詳しくは、「Pull RequestをIssueにリンクする」を参照してください。
ヒント:
- pull request で古いレビュー コメントを折りたたむか、展開するには、OptionAltAlt を押したまま、 Show outdated または Hide outdated をクリックします。 その他のショートカットについては、「キーボード ショートカット」を参照してください。
- プルリクエストをマージする際には、変更を効率的に見ることができるようにするためにコミットを squash できます。 詳しくは、「プルリクエストのマージについて」を参照してください。
ダッシュボードにアクセスすれば、作業しているかサブスクライブしている最近更新されたプルリクエストへのリンクを素早く見つけることができます。 詳しくは、「パーソナルダッシュボードについて」を参照してください。
ドラフト プル リクエスト
ドラフト・プル・リクエストは、組織およびレガシーのリポジトリごとの課金プランでは GitHub Free のパブリック・リポジトリで、パブリックおよびプライベート・リポジトリでは GitHub Team、GitHub Enterprise Server、GitHub Enterprise Cloud で利用できます。
プルリクエストを作成する際には、レビュー可能なプルリクエストを作成するか、ドラフトのプルリクエストを作成するかを選択できます。 ドラフトのプルリクエストはマージできません。また、コードオーナーにはドラフトのプルリクエストのレビューは自動的にはリクエストされません。 ドラフトの pull request を作成する方法については、「pull request の作成」と「フォークからプルリクエストを作成する」を参照してください。
プルリクエストに対するフィードバックをもらう準備ができているなら、ドラフトのプルリクエストにレビューの準備ができているとマークできます。 プルリクエストにレビューの準備ができているとマークすると、コードオーナーたちからのレビューをリクエストすることになります。 プルリクエストはいつでもドラフトに変換できます。 詳しくは、「プルリクエストのステージの変更」を参照してください。
比較とプルリクエストページのコミットの違い
比較とプルリクエストページは、次のような異なる方法で、変更されたファイルの diff を計算します。
- 比較ページには、head ref のヒントと、head およびベース ref の現在の共通の先祖 (マージベース) との diff が表示されます。
- プルリクエストページには、プルリクエストが作成されたときの head ref のヒントと、head およびベース ref の共通の先祖との diff が表示されます。 したがって、比較に使用されるマージベースは異なる場合があります。
参考資料
- GitHub 用語集の「GitHub 用語集」
- 「ブランチの概要」
- 「プルリクエストへのコメント」
- 「プルリクエストのクローズ」