Git (ソフトウェア) と GitHub (Web サービス) には「プル リクエスト」という概念がありますが、残念ながらまったく同じものではありません。
ネイティブ Git
ネイティブ Gitコマンドには、次の 1 文の説明をrequest-pull
含む非常に短いマニュアル ページがあります。
2 つのコミット間の変更を標準出力に要約し、生成された要約に指定された URL を含めます。
これは、メーリング リストへの投稿に適した変更の短い要約を生成する、かなり低レベルのコマンドです。他のユーザーは、この「プル リクエスト」で公開された URL を使用して、変更を自分のリポジトリに手動でプルできます。
GitHub プル リクエスト
GitHub Web サービスを使用する場合、プル リクエストは完全な機能を備えたインタラクティブなコラボレーション ツールです。GitHub プル リクエストには次のものがあります。
- 個々のコミットの概要だけでなく、より詳細な変更の説明
- プロジェクトを視聴することを選択したユーザーに自動的に送信される通知
- 提案された変更について他の人がコメントできるオンライン レビュー インターフェイス
- コミットに関する会話を記録するためのディスカッション コメント
- プルリクエストを一元管理して紛失しないようにする
これら 2 つの機能の相対的な有用性について、Linus が独自の意見を持っていることは注目に値します。
結論
上記の 2 つの「プル リクエスト」機能は、精神的には似ていますが、実装はまったく異なります。特に、このgit request-pull
コマンドを使用して GitHub で新しいプル リクエストを作成することはできません。「プル リクエスト」タイプの機能をサポートする場合は、いくつかの選択肢があります。
- GitHub を使用します。これは間違いなく最小限の労力で済みますが、プロジェクトが公開されていない場合は、プライベート リポジトリをホストするために GitHub に料金を支払う必要があります。この選択に満足できない人もいるでしょう。
- ゲリットを使用します。Gerrit は、GitHub で利用できるものと同様の多くの機能を提供するダウンロード可能なオープンソース サーバー プログラムです。これは、共同コード レビューに特に適しています。
git request-pull
とメーリングリストを使用します。この方法を使用すると、メーリング リストのメッセージを置き忘れたり、扱いを誤ったりしやすいため、エンジニアはより多くの訓練を受ける必要があります。この方法に関連する中央の説明責任はありません。