Как автоматически обрабатывать git push в ветке DEV, используя конфигурацию или некоторые скрипты - PullRequest
0 голосов
/ 14 июня 2019

У меня есть хранилище кода в devops Azure для сборок конвейера и других. У меня есть ветка разработчика и мастер ветка. Разработчики помещают свой код в ветку dev, и он будет объединен с веткой master для выпуска. Я хочу проверить, объединен ли код с master последним, прежде чем отправлять код в ветку DEV.

Это можно сделать, сравнив обе ветви вручную запускаемых команд. Но я хочу знать, возможно ли это автоматически с помощью сценариев или конфигураций управления хранилищем Azure.

Заранее спасибо.

1 Ответ

1 голос
/ 14 июня 2019

Наилучшее решение

Если мастер был объединен с dev, мастер станет предком dev.

Используйте это для непосредственного тестирования этого условия:

if git merge-base --is-ancestor master dev; then
   # master is an ancestor of dev, and was therefore merged in
fi

Обратный мастер и dev, чтобы проверить, был ли dev слит с мастером.

Чуть более длинное решение

git merge-base сообщит вам последнюю точку слияниядве ветви.Если master был объединен с dev, то git merge-base master dev будет master, а если dev был объединен с master, тогда эта база слияния будет dev.

Таким образом, вы можете использовать этот тест, чтобы проверить, был ли master объединенв dev:

if [ `git merge-base master dev` == `git rev-parse master` ]; then
   # master was merged into dev
else
   # master was not merged into dev
fi

Используйте git rev-parse dev, если хотите узнать, был ли dev включен в master.

Ссылка

Я нашел--is-ancestor решение в этом связанном вопросе: Как я могу определить, является ли один коммит предком другого (или наоборот)?

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