Відповіді:
Функція "запит на об'єднання" GitLab еквівалентна функції "запит на витягнення " GitHub . І те й інше - це спосіб перетягнути зміни з іншої гілки чи вилки у вашу гілку та об'єднати зміни з існуючим кодом. Вони є корисними інструментами для перегляду коду та управління змінами.
Стаття з GitLab обговорює відмінності в іменуванні функції:
Запити на об'єднання або витягування створюються в додатку для управління git і просять призначену особу об'єднати дві гілки. Такі інструменти, як GitHub і Bitbucket, вибирають запит на виклик імені, оскільки першою ручною дією було б витягнути гілку функції. Такі інструменти, як GitLab та Gitorious, вибирають запит на об'єднання імен, оскільки це остання дія, яка вимагається від правонаступника. У цій статті ми розглянемо їх як запити на об'єднання.
"Запит на об'єднання" не слід плутати з git merge
командою. Не слід плутати "запит на потяг" з git pull
командою. Обидві git
команди використовуються за лаштунками як у запитах на витяг, так і в запитах на злиття, але запит на об'єднання / потяг стосується набагато ширшої теми, ніж лише ці дві команди.
Вони однакові особливості
Запити на об'єднання або витягування створюються в додатку для управління git і просять призначену особу об'єднати дві гілки. Такі інструменти, як GitHub і Bitbucket, вибирають запит на виклик імені, оскільки першою ручною дією було б витягнути гілку функції. Такі інструменти, як GitLab та Gitorious, вибирають запит на об'єднання імен, оскільки це остання дія, яка вимагається від правонаступника. У цій статті ми розглянемо їх як запити на об'єднання.
На мій погляд, вони означають ту саму діяльність, але з різних точок зору:
Подумайте над цим, Аліса робить деякі зобов’язання у сховищі А, яке було роздвоєне з сховища Б. Боба.
Коли Аліса хоче "злити" свої зміни в B, вона насправді хоче, щоб Боб "витягнув" ці зміни з А.
Тому, з точки зору Аліси, це "запит на злиття", а Боб розглядає це як "запит на потяг".
Існує тонка різниця в плані управління конфліктами. У разі конфліктів, запит на виклик у Github призведе до злиття комісії у відділенні призначення . У Gitlab, коли буде знайдено конфлікт, внесені модифікації будуть накладені на об'єднання у вихідній гілці.
Дивіться https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html
"GitLab вирішує конфлікти, створюючи комісію злиття у вихідній гілці, яка не автоматично об'єднується у цільову гілку. Це дозволяє переглядати та перевіряти об'єкт злиття перед об'єднанням змін, запобігаючи ненавмисним змінам входити до цільової гілки без огляду чи порушення збірка ".
GitLab 12.1 (липень 2019 року) представляє різницю:
" Запити на об'єднання конфіденційних питань "
Під час обговорення, планування та вирішення конфіденційних питань, таких як вразливості безпеки, для проектів з відкритим кодом може бути особливо складним, щоб залишатися ефективними, оскільки сховище Git є загальнодоступним.
З 12.1 тепер конфіденційні проблеми в публічному проекті можуть бути вирішені в межах обтічного робочого процесу за допомогою кнопки Створити конфіденційний запит на об'єднання, яка допоможе вам створити запит на об'єднання в приватному вилку проекту.
Див. " Конфіденційні питання " з номера 58583 .
Аналогічна особливість існує в GitHub, але передбачає створення спеціального приватного вила, який називається " консультант з безпеки безпеки ".
Як було сказано в попередніх відповідях, обидва служать майже однаковою метою. Особисто мені подобається git rebase та запит на злиття (як у gitlab). Він знімає навантаження з рецензента / технічного обслуговування, переконуючись, що додаючи запит на об'єднання, галузь функції включає всі останні комісії, зроблені на головній гілці після створення гілки функції. Ось дуже корисна стаття, яка детально пояснює ребауз: https://git-scm.com/book/en/v2/Git-Branching-Rebasing