Git: Есть ли быстрый способ узнать, когда в последний раз мастер git merge выполнялся в текущей рабочей ветке? - PullRequest
7 голосов
/ 17 ноября 2011

Я обычно работаю над веткой, которая отличается от основной.Поэтому, пока я развиваю вещи, я время от времени выполняю git merge master.И иногда я хочу знать, когда в последний раз я делал git merge master на этой ветке.Я знаю, что могу сделать git log и найти «ветвь слияния« мастер »» и увидеть дату коммита… но если есть магия, я бы хотел знать!

Ответы [ 3 ]

8 голосов
/ 17 ноября 2011
git show :/"Merge branch 'master'"
4 голосов
/ 17 ноября 2011

Мне лично нравится проверять разницу в деревьях ревизий:

git log --graph --left-right --cherry-pick --oneline branch1...branch2

Также в «магическом» отделе есть

git show-branch 
git show-branch branch1 branch2
git show-branch --all # which does all of the above and more

И, наконец,

git merge-base branch1 branch2

для именования base ревизии, которая будет объединена из


Примечания:

  • замените branch1 и branch2 в зависимости от вашего проекта
  • вы можете использовать псевдонимы этих команд, если они вам нравятся: http://progit.org/book/ch2-7.html#git_aliases
  • варианты --cherry-pick содержат редкий вид magic:
--cherry-pick 

Пропустить любой коммит, который вносит то же изменение, что и другой коммит, на "другую сторону", когда набор коммитов ограничен симметричной разностью.

Например, если у вас есть две ветви, A и B, обычным способом перечисления всех коммитов только на одной их стороне является --left-right, как в примере выше в описании этой опции. Однако он показывает коммиты, которые были выбраны вишней из другой ветви (например, «3-е на b» может быть выбрано вишней из ветви A). С помощью этой опции такие пары коммитов исключаются из вывода.

2 голосов
/ 17 ноября 2011

Вы можете использовать git merge-base, чтобы получить общего предка и отобразить результаты.

Примерно так:

git merge-base HEAD master | git show --pretty

...