Git: следуйте за слиянием при получении новых коммитов - PullRequest
0 голосов
/ 03 июля 2019

Допустим, у нас есть эти ветви:

  • Мастер
  • разработка
  • new_feature

Мое локальное репо следует за "new_feature".

Кто-то еще слил «new_feature» в «development» и удалил эту ветку на сервере (то есть ветку «new_feature»). Как и ожидалось, когда функция будет завершена.

Я хотел бы, чтобы был автоматизированный / скриптовый способ, который обнаружит, что ветвь была объединена, с какой целевой ветвью и что извлечет эту ветвь локально (и удалит локальную ветвь "new_feature").

PS: локальное изменение в ветви может быть отброшено в этом упрощенном сценарии.

Кто-нибудь?

1 Ответ

0 голосов
/ 04 июля 2019

Я нашел частичное решение.

Определите, работает ли вытягивание или нет:

если!git pull --all --prune;затем

Ветвь была удалена удаленно, поэтому ссылки больше не существуют.Но мы знаем, что является последним локальным и известным коммитом этой (локальной) ветки.Давайте посмотрим, где этот коммит был объединен (спасибо @joanis):

ORIGIN = $ (ветка git --remotes --merged "HEAD" | grep -v HEAD)

Коммит может появиться дважды, мы убираем строку "-> HEAD".Нам нужно выяснить, как называется:

BRANCH = "$ {ORIGIN / origin /}"

BRANCH = "$ {BRANCH // /}"

Итак, давайте перейдем к новой ветке:

git checkout "$ BRANCH" git pull

Предел этой ситуации, если есть большечем одна ветвь, в которой он был объединен.Этот алгоритм выбирает один из них в том порядке, в котором он перечисляется по "git branch".

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