У меня есть ветвь релиза с именем release/X.X.X.X
, которая содержит все ветки функций, которые я хочу развернуть для производства. Отделение выпуска выполнено поверх master
, которое является текущим состоянием производства.Как сравнить две ветви git и фильтровать различия по сообщению фиксации?
В каждый день выпуска я убеждаюсь, что наша ветка релиза содержит только те изменения, которые были запланированы для выпуска. Я использую эту команду для сравнения ветви релиза и мастера: git log release/X.X.X.X ^master --no-merges
. Затем я вручную проверяю фиксации ключевых слов, таких как «SHR-1234», которые представляют номера билетов в нашей системе управления билетами. Мне нужно сравнить каждую фиксацию со списком номеров билетов для выявления нежелательных изменений.
Как я могу фильтровать запинки, которые были возвращены git log release/X.X.X.X ^master --no-merges
, и не содержат ключевых слов, таких как «SHR-1234»? Таким образом, я могу определить количество ненужных изменений в билете.
Я пробовал grep и awk, но результаты не полезны, потому что они не фильтруют всю фиксацию.
См. 'Git log --grep', затем см. Параметр' --invert-grep'. – torek
@torek Используется в 1000 раз непрямым путем gui, но не знал об этом tbh: D Спасибо! Можете ли вы добавить его в качестве ответа, чтобы я мог его принять? Я использую его так: 'git log release/XXXX^master --no-merges --invert-grep --grep = 'SHR-1234' --grep = 'SHR-4321' ...' – clinical
Связано: https: //stackoverflow.com/q/1419623/1959808 –