Задать вопрос
@7GBars

Как вывести в 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 и так далее
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Средний 7 комментариев
Решения вопроса 1
@sergiodev
По идее можно это сделать так:

git log dev/2.6 ^dev/2.5 ^dev/2.4

^ исключает ветку из лога, т.е. команда выше покажет коммиты, которые есть в 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).



Больше информации тут: https://git-scm.com/docs/gitrevisions#Documentatio...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы