Автоматическое сообщение фиксации "git merge" - PullRequest
2 голосов
/ 04 августа 2020

Мне постоянно нужно обновлять удаленную ветку текущим мастером. Я пытаюсь автоматизировать это как;

#!/usr/bin/env bash

cd directory
git checkout master 
git pull
git checkout <remote_branch>
git pull origin <remote_branch>
git merge master
git push

, но когда я объединяю мастер, я попадаю в свой редактор, где мне нужно :wq, чтобы иметь возможность pu sh. Как я могу воспроизвести этот :wq в моем Bash скрипте?

1 Ответ

2 голосов
/ 04 августа 2020

Для этого есть 3 способа, перечисленных ниже, и вам не нужно реплицировать :wq для этого.

1 - Использование --no-edit

с использованием --no-edit вариант, автоматически сгенерированное сообщение будет принято (обычно это не рекомендуется, см. git docs )

Поэтому после того, как вы git pull origin <remote_branch>, вы можете использовать

git merge master --no-edit

2 - Использование переменной окружения

Старые сценарии могут зависеть от исторического поведения, не позволяющего пользователю редактировать сообщение журнала слияния. При запуске git merge они увидят открытый редактор. Чтобы упростить адаптацию таких сценариев к обновленному поведению, переменная среды GIT_MERGE_AUTOEDIT может быть установлена ​​в no в начале их. - git docs

Используйте

GIT_MERGE_AUTOEDIT=no

перед строкой слияния

3 - Используйте -m, чтобы предоставить сообщение

Установить сообщение фиксации, которое будет использоваться для фиксации слияния (в случае, если оно создано).

Если указано --log, будет записан короткий журнал сливаемых фиксаций добавляется к указанному сообщению.

Команда git fmt-merge-msg может использоваться, чтобы задать хорошее значение по умолчанию для автоматических вызовов слияния git. Автоматическое сообщение может включать описание ветки. - git документы

git merge master -m "Merge master"

Подробнее: команда git merge

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