Если вы хотите видеть все коммиты, объединенные в последнем слиянии, вы можете попробовать это:
git log $(git merge-base --octopus $(git log -1 --merges --pretty=format:%P)).. --boundary
Вот пример моего текущего журнала:
$ git log --graph --pretty=oneline --abbrev-commit
* 44899b9 pouf
* 8f49f9c Merge branch 'test'
|\
| * 3db39ca test
* | 69f431c pif
* | df1f51c lala
|/
* 8fae178 pif2
* 20f8ba6 init
Если я толькохочу коммиты, связанные с последним слиянием, которое я должен использовать git log -1 --merges --pretty=format:%P
, что дает мне родителей первого доступного слияния:
$ git log -1 --merges --pretty=format:%P
69f431cec7859b61d33c7503c9431ceea2aaf3e0 3db39ca3ab1e8f70462db23d94590628b5e7ad7b
Теперь, когда я знаю, каких родителей мне нужно отслеживать, мне нужна их общая базачто я могу получить с помощью git merge-base --octopus
(--octopus есть на всякий случай):
$ git merge-base --octopus $(git log -1 --merges --pretty=format:%P)
8fae178666e34a480b22e40f858efd9e7c66c3ca
Теперь с помощью git log
я могу искать каждый коммит начиная с базы до текущего HEAD и вуаля:
$ git log $(git merge-base --octopus $(git log -1 --merges --pretty=format:%P)).. --boundary --graph --pretty=oneline --abbrev-commit
* 44899b9 pouf
* 8f49f9c Merge branch 'test'
|\
| * 3db39ca test
* | 69f431c pif
* | df1f51c lala
|/
o 8fae178 pif2
Если вы немного перфекционист, вы также можете сделать это:
$ git log $(git merge-base --octopus $(git log -1 --merges --pretty=format:%P))..$(git log -1 --merges --pretty=format:%H) --boundary --graph --pretty=oneline --abbrev-commit
* 8f49f9c Merge branch 'test'
|\
| * 3db39ca test
* | 69f431c pif
* | df1f51c lala
|/
o 8fae178 pif2
Теперь я думаю, что я оставлю это как псевдоним:)
PS:Очевидно, вам не нужно сохранять --graph --pretty=oneline --abbrev-commit
опции
Ресурсы: