Как вывести в git log пересечения коммитов двух веток?
У меня есть корневая ветка main.
От нее ответвляются в зависимости от минорной версии ветки семейства dev:
dev/2.3 dev/2.4 dev/2.5 dev/2.6
Допустим сейчас актуальная ветка для разработок dev/2.6
Для конкретной задачи я ответвляюсь от dev/2.6 и работаю например в tasks/task1
Я делаю комиты и делаю пуш в удаленный tasks/task1.
После я создаю пул-реквест tasks/task1 в dev/2.6
И после определенного колличества времени допусти создаю пул-реквест dev/2.6 в main
Вопрос заключается в том, можно ли после пул-реквеста dev/2.6 в main с помощью команды git log узнать пересечения коммитов dev/2.6 и main
Например я пробывал git --no-pager log --oneline main..dev/2.6
но эта команда показывает только различия в коммитах, а мне требуется залогить все коммиты которые были сделаны в dev/2.6 и есть соотвествено после пула в main, но нет в dev/2.4 dev/2.5 и так далее
7GBars, в тот момент, когда вы завершили слияние dev в main, все коммиты этих веток начнут принадлежать обоим веткам одновременно. На то оно и слияние.
Может вам проще рассматривать сам граф цепочек коммитов, чтобы видеть то что не видно в линейном журнале?
Попробуйте ключик --graph или пользуйтесь GUI-клиентом, который показывает всё дерево, со всеми разветвлениями и слияниями.
Если я вас правильно понял, то «перечение» — это все коммиты, созданные до момента слияния веток.
Всё что новее в dev — оно пока не принадлежит main и не попадает в пересечение.
Сергей Кузнецов, я теперь понял что лучше в данном кейсе сравнивать dev/2.5 с dev/2.6
я просто думал, что есть вариант именно сравнить то что принадлежит и dev/2.6 и main, но не остальным слитым веткам, например dev/2.5
^ исключает ветку из лога, т.е. команда выше покажет коммиты, которые есть в dev/2.6 и нет в dev/2.5 и dev/2.4.
Commit Exclusions
^ (caret) Notation
To exclude commits reachable from a commit, a prefix ^ notation is used. E.g. ^r1 r2 means commits reachable from r2 but exclude the ones reachable from r1 (i.e. r1 and its ancestors).
Сергей Кузнецов, автор вопроса упомянул "а мне требуется залогить все коммиты которые были сделаны в dev/2.6 и есть соотвествено после пула в main, но нет в dev/2.4 dev/2.5" - вроде бы он это и хочет