Как создать мерж-реквест из уже отправленного коммита из 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
Исправление сохранит исходный коммит без изменений и позволит вам отправить ту же ветку при создании запроса на слияние.