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 をマージしたときイシューを自動的にクローズすることができます。 詳しくは、「Pull RequestをIssueにリンクする」を参照してください。
ヒント:
- pull request で古いレビュー コメントを折りたたむか、展開するには、OptionAltAlt を押したまま、 Show outdated または Hide outdated をクリックします。 その他のショートカットについては、「キーボード ショートカット」を参照してください。
- プルリクエストをマージする際には、変更を効率的に見ることができるようにするためにコミットを squash できます。 「プルリクエストのマージについて」をご覧ください。
ダッシュボードにアクセスすれば、作業しているかサブスクライブしている最近更新されたプルリクエストへのリンクを素早く見つけることができます。 「パーソナルダッシュボードについて」をご覧ください。
ドラフト プル リクエスト
ドラフト pull request は、organization 向けの GitHub Free を使用するパブリック リポジトリと、従来のリポジトリ単位の課金プランを使用するパブリック リポジトリで使用できます。 ドラフト pull request は、GitHub Team、GitHub Enterprise Cloud および GitHub Enterprise Server を使用しているパブリック リポジトリとプライベート リポジトリでも使用できます。
プルリクエストを作成する際には、レビュー可能なプルリクエストを作成するか、ドラフトのプルリクエストを作成するかを選択できます。 ドラフトのプルリクエストはマージできません。また、コードオーナーにはドラフトのプルリクエストのレビューは自動的にはリクエストされません。 「pull request の作成」および「フォークからプルリクエストを作成する」を参照してください。
プルリクエストに対するフィードバックをもらう準備ができているなら、ドラフトのプルリクエストにレビューの準備ができているとマークできます。 プルリクエストにレビューの準備ができているとマークすると、コードオーナーたちからのレビューをリクエストすることになります。 プルリクエストはいつでもドラフトに変換できます。 「プルリクエストのステージの変更」をご覧ください。
比較とプルリクエストページのコミットの違い
比較とプルリクエストページは、次のような異なる方法で、変更されたファイルの diff を計算します。
- 比較ページには、head ref のヒントと、head およびベース ref の現在の共通の先祖 (マージベース) との diff が表示されます。
- プルリクエストページには、プルリクエストが作成されたときの head ref のヒントと、head およびベース ref の共通の先祖との diff が表示されます。 したがって、比較に使用されるマージベースは異なる場合があります。
参考資料
- GitHub 用語集の「GitHub 用語集」
- 「ブランチの概要」
- 「プルリクエストへのコメント」
- 「プルリクエストのクローズ」