回答:
GitLabの「マージ要求」機能は、GitHubの「プル要求」機能と同等です。どちらも、変更を別のブランチまたはフォークからブランチにプルし、その変更を既存のコードとマージする手段です。これらは、コードのレビューと変更管理に役立つツールです。
GitLabの記事では、機能の命名の違いについて説明しています。
マージまたはプルリクエストはgit管理アプリケーションで作成され、割り当てられた人に2つのブランチをマージするよう依頼します。GitHubやBitbucketなどのツールは、最初の手動アクションが機能ブランチをプルすることになるため、プルリクエストの名前を選択します。GitLabやGitoriousなどのツールは、名前のマージ要求を選択します。これは、譲受人に要求される最後のアクションであるためです。この記事では、それらをマージリクエストと呼びます。
「マージ要求」とgit merge
コマンドを混同しないでください。「プルリクエスト」をgit pull
コマンドと混同しないでください。両方のgit
コマンドは、プルリクエストとマージリクエストの両方で背後で使用されますが、マージ/プルリクエストは、これら2つのコマンドよりもはるかに広いトピックを参照します。
彼らは同じ機能です
マージまたはプルリクエストはgit管理アプリケーションで作成され、割り当てられた人に2つのブランチをマージするよう依頼します。GitHubやBitbucketなどのツールは、最初の手動アクションが機能ブランチをプルすることになるため、名前のプルリクエストを選択します。GitLabやGitoriousなどのツールは、名前のマージ要求を選択します。これは、譲受人に要求される最後のアクションであるためです。この記事では、それらをマージ要求と呼びます。
私の見解では、これらは同じアクティビティを意味しますが、異なる観点からです。
考えてみてください。アリスは、ボブのリポジトリBから分岐されたリポジトリAにいくつかのコミットを行います。
アリスが自分の変更をBに「マージ」したい場合、実際にはボブにAからこれらの変更を「プル」してもらいたいと思っています。
したがって、アリスの観点からは、それは「マージ要求」であり、ボブはそれを「プル要求」と見なします。
紛争管理に関しては微妙な違いがあります。競合が発生した場合、Githubでのプルリクエストにより、宛先ブランチでマージコミットが行われます。Gitlabでは、競合が検出されると、ソースブランチのマージコミットで変更が行われます。
https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.htmlを参照してください
「GitLabは、ターゲットブランチに自動的にマージされないマージコミットをソースブランチに作成することで競合を解決します。これにより、変更がマージされる前にマージコミットを確認およびテストできるため、意図しない変更がレビューまたは中断せずにターゲットブランチに入るのを防ぎます。ビルド。」
GitLab 12.1(2019年7月)では違いが導入されています。
セキュリティの脆弱性などの機密問題について話し合い、計画し、解決する場合、Gitリポジトリが公開されているため、オープンソースプロジェクトの効率を維持することは特に困難です。
12.1以降、パブリックプロジェクトの機密問題は、機密のマージ要求の作成ボタンを使用して合理化されたワークフロー内で解決できるようになりました。これにより、プロジェクトのプライベートフォークでマージ要求を作成できます。
GitHubにも同様の機能がありますが、「メンテナセキュリティアドバイザリ」と呼ばれる特別なプライベートフォークの作成が含まれます。
以前の回答で述べたように、どちらもほぼ同じ目的を果たします。個人的に私はgit rebaseとマージリクエストが好きです(gitlabのように)それはレビューア/メンテナの負担を取り除き、マージリクエストを追加している間、機能ブランチが作成された後、機能ブランチがメインブランチで行われたすべての最新のコミットを確実に含むようにします。以下は、リベースを詳細に説明する非常に役立つ記事です。https: //git-scm.com/book/en/v2/Git-Branching-Rebasing