プル要求は、コードの変更をプロジェクトにマージするための提案です。 pull request は GitHubの基本的な コラボレーション機能であり、マージする前に変更について話し合い、確認することができます。 これにより、チームは共同作業を行い、問題を早期にキャッチし、コードの品質を維持できます。
<a href="https://github.com/pulls?ref_product=github&ref_type=engagement&ref_style=button" target="_blank" class="btn btn-primary mt-3 mr-3 no-underline">
<span>pull request を表示する</span><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-link-external" aria-label="link external icon" role="img"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a>
pull request の操作
プル要求の [会話 ] タブには、変更の説明、イベントのタイムライン、コラボレーターからのコメントとレビューが表示されます。 この中央ハブを使用すると、提案された変更のディスカッションと進行状況を追跡できます。
[ コミット] タブには、pull request ブランチに対して行われたすべてのコミットが時系列で表示されます。 これは、開発履歴を理解し、時間の経過と同時に変化がどのように変化したかを確認するのに役立ちます。
[ チェック ] タブには、コミットをプッシュしたときに実行される自動テスト、ビルド、またはその他の継続的インテグレーション ワークフローの状態が表示されます。 これらのチェックは、マージする前に変更が品質基準を満たしていることを確認するのに役立ちます。
[ ファイルの変更 ] タブには、提案された変更と既存のコードの違いが表示されるため、プル要求のマージ時に何が変わるかを簡単に確認できます。
ドラフト プル リクエスト
pull request を作成するときに、それを下書きプル要求にすることを選択できます。 下書きプル要求はマージできず、コード所有者はそれらを確認するように自動的に要求されません。 これは、レビューを正式に要求せずに進行中の作業を共有する場合に便利です。
プルリクエストに対するフィードバックをもらう準備ができているなら、ドラフトのプルリクエストにレビューの準備ができているとマークできます。 プルリクエストにレビューの準備ができているとマークすると、コードオーナーたちからのレビューをリクエストすることになります。 pull request は、いつでも下書きに変換できます。 「[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request)」を参照してください。
プル要求の参照とマージ ブランチ
pull request を開くと、 GitHub は最大 2 つの一時的な読み取り専用 Git 参照を作成します。
| Ref | 説明 |
|---|---|
refs/pull/PULL_REQUEST_NUMBER/head | pull request のヘッド ブランチの最新のコミットを指します。 |
refs/pull/PULL_REQUEST_NUMBER/merge | マージ ブランチ: プル要求が現在マージされた場合のリポジトリの外観を表すシミュレートされたマージ コミット。 この参照は、プル要求にマージの競合がない場合にのみ使用できます。 |
マージ ブランチは、ヘッド ブランチまたはベース ブランチが変更されると自動的に更新されます。 ローカルで取得するには:
git fetch origin refs/pull/PULL_REQUEST_NUMBER/merge
git checkout FETCH_HEAD
`PULL_REQUEST_NUMBER`を pull request の数に置き換えます。
マージ ブランチ GitHub Actions 使用方法については、「 ワークフローをトリガーするイベント」を参照してください。
比較とプルリクエストページのコミットの違い
比較とプルリクエストページは、次のような異なる方法で、変更されたファイルの diff を計算します。
- 比較ページには、head ref のヒントと、head およびベース ref の現在の共通の先祖 (マージベース) との diff が表示されます。
- プルリクエストページには、プルリクエストが作成されたときの head ref のヒントと、head およびベース ref の共通の先祖との diff が表示されます。 その結果、比較に使用されるマージ ベースが異なる場合があります。
参考資料
-
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) -
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches) -
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request)