Найдите одинаковые различия между 2 наборами git коммитов - PullRequest
0 голосов
/ 03 августа 2020

У нас есть функциональная ветка, которая какое-то время не проходит некоторые тесты. Но когда он был взят у мастера, эти тесты прошли.

Недавно в мастер было внесено несколько изменений, и те же тесты начали давать сбой. Есть несколько несвязанных изменений, но должно быть что-то, что произошло как в моей функциональной ветке, так и теперь в главной.

Я бы хотел сделать 2 коммита в моей ветке и 5 или коммитов на master, так как тесты начали терпеть неудачу, и сравнивайте их, ища общие изменения, это почти противоположно трехстороннему слиянию: p.

Есть ли быстрый способ сделать это, в настоящее время я просто смотрю совокупный git diff --name-status коммитов!

1 Ответ

1 голос
/ 03 августа 2020

git log имеет параметр --cherry-mark, который выделяет коммиты, которые вносят точно такие же изменения:

# will mark with '=' commits cherry picked between the two branches :
git log --boundary --graph --cherry-mark --oneline master...feature

Вы можете объединить это с предложением @ mkrieger1:

  • в вашем локальном клоне разделите коммиты big-i sh на master и feature на более мелкие коммиты (возможно, каждая фиксация обновляет один модуль?),
  • запускает git log --boundary --graph --cherry-mark --oneline на двух переработанные ветки

Обратите внимание, однако, что по-прежнему будет много лазеек: предположим, что ваш так называемый «пакет» был обновлен с 2.0.1 до 3.0.3 на feature и с 2.0.1 на 3.0.5 на главном сервере. , вы не заметите этого с помощью --cherry-mark.

. Все же лучше найти способ запустить неудачный тест независимо и разрезать зависимости с помощью git bisect.

...