Разбивка трех типов Github UI слияний - PullRequest
0 голосов
/ 12 сентября 2018

Я использовал интерфейс Github некоторое время, чтобы объединить PR (запросы на извлечение), интерфейс выглядит так:

enter image description here

Я пытаюсьпонять, как эти 3 вещи работают более тщательно.Вот мое лучшее предположение о том, что делают эти три варианта:

  1. Создать коммит слияния
git merge <base> <other>
Сквош и слияние
git merge --squash <base> <other>
Перебазировать и объединить
git rebase <base> <other>

Это точно?Или я что-то упустил?

1 Ответ

0 голосов
/ 12 сентября 2018

У меня более длинная версия этого ответа в Запрос на объединение в git заставляет ветвь вверх по течению идти вперед от начала , но здесь это сокращенный эквивалент. Все предполагают, что вы находитесь на базовой ветви, то есть git checkout <em>branch</em>. сообщение ниже равно Merge pull request #<em>number</em> from <em>repository</em>, а hash автоматически вычисляется из запроса на извлечение.

  1. Создать коммит слияния

    git merge --no-ff -m <em>message hash</em>

  2. Сквош и слияние

    git merge --no-commit --squash <em>hash</em> && git commit -m <em>message</em>

  3. Перебазировать и объединить

    git rebase --force-rebase <em>hash</em>

(Обратите внимание, что rebase-and-merge не будет работать, если возникнут конфликты слияния. Мне не ясно, проверяет ли система GitHub это с --merge или без него, или каким-либо другим способом полностью. Запрос на извлечение уже проверил конфликты слияния с git merge с или без --squash; refs/pull/head/<em>number</em> всегда существует, но refs/pull/merge/<em>number</em> существует, только если таких конфликтов нет, я думаю. Они - GitHub - также отслеживают, «Базовая ветвь», используемая для создания запроса на извлечение, была / является актуальной, но не совсем ясно, как именно они это делают.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...