これは私の前の質問から分岐しました:オープンソースプロジェクトに貢献できる人を選択できますか?
これまでオープンソースソフトウェアに取り組んだことがなく、今年の夏にApp Storeにリリースしたいと思っている独自のミニアプリケーションを開発しているので、ほとんどのオープンソースの方法にまったく慣れていません。開発構造が設定されています(フォーク、メインリポジトリ…)。
ポップアップしたものの1つは、プルリクエストの言及でした。プルリクエストとは正確には何ですか?
回答
「プルリクエスト」という用語は、git
に由来し、git pull
コマンドは、別のリポジトリをローカルリポジトリにマージするために使用されます。したがって、他の誰かがあなたのgit
リポジトリのコピーを持っていて、それを変更した場合は、組み込むために、リポジトリから変更をpull
するように依頼できます。 「pull
をリクエストしているため、「プルリクエスト」という用語が使用されています。
現在、ほとんどのユーザーにとって、これはある種のグラフィカルインターフェイスの背後に隠されている傾向があります。たとえば、GithubまたはBitbucket、またはGerrit経由。ただし、原則は同じです。おそらく、「レビューした後」に、誰かがリポジトリをコピーし、変更を加えて、自分のコピーにマージするように要求します。
コメント
- Gitには
git request-pull
コマンドもあります。これにより、送信可能なメッセージが生成されます。他の誰かが、git pull
を使用してあなたの作業をソフトウェアのコピーに組み込むように招待しています。 - 初心者にはこれ以上明確に説明することはできません。
回答
分散バージョンコントロールシステムを使用している場合は、すべての開発者は完全なリポジトリのコピーを持っています。ソフトウェアに何かを変更した場合は、ローカルリポジトリに変更をコミットします。別のリポジトリにこれらの変更が必要な場合は、変更をプッシュできます(適切な別のリポジトリに変更を移動します)。書き込む)または変更をプルする(リビジョンをコピーする) m他のリポジトリを独自に)。多くのプロジェクトにはメインリポジトリがあるため、プルリクエストはメンテナが変更をプルするリクエストです。
を少し読んでいます、あるユーザーがプロジェクトのメインブランチに自分のパッチを含めるように要求した場合、この用語は非分散バージョン管理でも使用されているようです。特にgithubの別の読み物: https://help.github.com/articles/using-pull-requests/
回答
プルリクエストはバージョン管理システムに関連しています。複数のユーザーセットが存在する場合があります。
- 管理者/所有者
- 寄稿者
- テスター
必要なユーザーこれらの人々はそれぞれ異なることを行うことができます:
- 管理者/所有者
これらの人々は信頼できます。必要なときに必要なものをコミットする完全な権限を含め、問題のリポジトリへの完全なアクセス権を持っている可能性があります。 - 寄稿者
これらはインターネットからのランダムな人々かもしれません。彼らは会社のより少ない人々かもしれません。いずれにせよ、おそらくコードベースに直接コミットできないようにする必要があります。最初に変更を確認する必要があります。
ここでプルリクエストが送信されます。許可する代わりに、コントリビューターからコードベースに直接変更を加えると、代わりにリポジトリをフォークして、ローカルマシンにコピーを作成し、それを開発します。コントリビューターが完了すると、更新されたプルリクエストを作成できます。コード。上位グループの誰かが、変更の正確性と標準への準拠を確認し、準拠している場合は変更をマージできます。
コメント
- 少し話題から外れていますが、自分の変更を直接マージできる人でも、同僚がレビューできるようにPRを提出する必要があります。 'がチームで作業していると仮定します。 'でない場合は、'が CodeReview aであると思います。 >はです。
- OK。つまり、手順は次のとおりです。メインリポジトリをフォークし、PCにプルし、変更し、コミットしてフォークブランチにプッシュしてから、管理者にフォークブランチからメインにプルしてマージするように要求しますか?
回答
プルリクエスト(PR)は、オープンな開発プロジェクトに貢献を送信する方法です。これは、開発者が外部リポジトリにコミットされた変更を、ピアレビュー後にプロジェクトのメインリポジトリに含めることを検討するように要求した場合に発生します。
簡単な例 オープンソースリポジトリのクローンを作成/フォークし、いくつかの変更/コミットを実行し、変更をメインリポジトリにマージするには、すべてのコミットを1つの論理部分にグループ化したプルリクエストを送信する必要があります。 他の開発者によるレビュー。
これには、チェックする追加の目があり、一般的な/隠れた問題を回避するため、標準のコミットやプッシュよりもいくつかの利点があります/ 実際の変更前の間違い。
いくつかのPRの例を参照してください:
- GitHub ここまたはここ
- Chromiumコードレビュー(プルリクエストに相当)