Как найти коммиты которые были смерджены мердж коммитом
Как найти коммиты по мердж коммиту которые были смерджены с другого бранча? На картинке ниже зеленая ветка эта master, у меня есть SHA коммита под номером 1 но нет названия ветки которую вливали а найти нужно коммиты 2, 3, 4
Ответы (1 шт):
git log --oneline коммит1^..коммит1^2, где коммит1 - любой идентификатор коммита 1, например его SHA-1 или ветка, указывающая на него
Расшифровка
Две точки в команде git log коммит1..коммит2 означает: все коммиты из ветки, оканчивающейся коммит2, не входящие в ветку коммит1
Крышка в коммит1^ - предок коммита (для слияния - ветка в которую был merge). В примере это коммит 5.
Двойка после крышки в коммит1^2 - второй предок, то есть ветка, которую мы вливали командой merge. Доступно только для коммита слияния. В примере это коммит 2
Информация взята отсюда https://git-scm.com/book/ru/v2/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-Git-%D0%92%D1%8B%D0%B1%D0%BE%D1%80-%D1%80%D0%B5%D0%B2%D0%B8%D0%B7%D0%B8%D0%B8 и проверена на практике.
PS в командной строке Windows крышка ^ является служебным символом, поэтому ее придется удвоить: git log --oneline коммит1^^..коммит1^^2
