Как создать мерж-реквест из уже отправленного коммита из CLI?

У меня есть ветка под названием dev которая актуальна с origin/dev. Я хочу слиться с (защищенным)master с помощью следующей команды, но она не отправляет ни один запрос на слияние.

$ git push -o merge_request.create -o merge_request.target=master
Everything up-to-date

Как создать мерж-реквест из уже отправленного коммита из CLI?

3 ответа

Решение

Это решение основано на этом, но мое более общее. Приведенное ниже решение создает ветвь с настраиваемым именем для ее отправки и запрашивает удаление вновь созданной ветки при слиянии.

# Create new unique merge-request branch ex: 1234abc-to-master
git checkout -b `git rev-parse --short HEAD`"-to-master"

# Create merge request with upstream this new branch
git push -u origin `git rev-parse --abbrev-ref HEAD` -o merge_request.create -o merge_request.target=master -o merge_request.remove_source_branch

Если твой dev ветка обновлена ​​с dev ветка по происхождению, ваша git push команда ничего не сделает, потому что Everything up-to-date.

Чтобы создать мерж-реквест из CLI, создайте новую ветку (из dev), чтобы произошел толчок:

git checkout -b dev2
git push -o merge_request.create -o merge_request.target=master

Я пытался автоматизировать создание мерж-реквеста, но хотел сначала сделать push, а затем создать фактический мерж-реквест. Я использовал этот трюк, чтобы сделать это после того, как исходный толчок перешел на пульт:

      git commit --amend --no-edit
git push --force-with-lease  origin [branch_name] -o merge_request.create -o merge_request.target=master

Исправление сохранит исходный коммит без изменений и позволит вам отправить ту же ветку при создании запроса на слияние.

Другие вопросы по тегам