Как получить слияния совершить мастер? - PullRequest
0 голосов
/ 04 февраля 2020

TL; DR : Как найти только те коммиты слияния, которые сливаются в указанную c ветку?


У меня есть примерно такая история коммитов:

        f → g → - - - - k → l → m           [m] ← feature/2
       /               /         \
      /               /           \
     /               /             \
a → b → - - - - - - h → - - - - n → o       [o] ← master
     \             / \         /
      \           /   \       /
       \         /     \     /              [e] ← feature/1
        c → d → e       i → j               [j] ← feature/3
  • a - начальный коммит в master
  • h - объединить коммит с feature/1 в master
  • k - слияние с master до feature/2
  • n - слияние с feature/3 до master
  • o - слияние с feature/2 до master

В настоящее время все коммиты находятся в master, и все ветви, кроме master, пропали (push -d).

Я пытаюсь найти только те слияния коммиты, направленные на master; это h, n и o. Коммит k не включен, потому что он от master.

Я пробую эту команду:

git rev-list a..o --merges

… но он возвращает все четыре коммита слияния включая k.

Как мне найти только коммиты "merge to master"? В идеале, это не должно включать анализ сообщений коммита, так как они могут быть изменены до слияния (по крайней мере, в GitHub).

1 Ответ

1 голос
/ 04 февраля 2020

Попробуйте добавить параметр --first-parent:

git rev-list --first-parent --merges master
# or :
git rev-list --first-parent --merges a..o

Если ваша ветвь master может быть обновлена ​​только с помощью запросов на слияние, это на самом деле всегда будет работать.

...