Просмотр журнала git без коммитов слияния


88

Я пытаюсь просмотреть коммиты, сделанные конкретным пользователем, и хочу удалить любые слияния, сделанные пользователем, из вывода. Как я могу это сделать?

Я могу проверить коммиты пользователя, использующего git log --author=<name>, но не могу удалить коммиты слияния на выходе.

PS: Конфликты слияния не возникают в рабочем процессе рассматриваемого репо, все ветки перебазируются перед объединением в мастер, поэтому можно безопасно удалить коммиты слияния из вывода, и аналогично, две ветки функций не объединяются друг с другом, повышая возможность.


2
Что, если при слиянии возник конфликт, и ему нужно было его разрешить?
Джо Филлипс,

2
@JoePhilllips Этого не происходит в рабочем процессе рассматриваемого репо, все ветки перебазируются перед объединением в мастер.
mu 無

6
usegit log --no-merges
0xAX

1
@ 0xAX Можете опубликовать это в качестве ответа, я приму это.
mu 無

Ответы:


133

использовать

git log --author=<name> --no-merges

Дополнительно --first-parentопция может дать вам полезный результат:

--first-parent Следить только за первым родительским коммитом, увидев коммит слияния. Эта опция может дать лучший обзор при просмотре эволюции конкретной тематической ветки, потому что слияния в тематическую ветку, как правило, связаны только с настройкой время от времени обновляемых восходящих потоков, и эта опция позволяет игнорировать отдельные коммиты, внесенные в ваша история таким слиянием. Нельзя сочетать с --bisect.


еще лучше с --pretty=format:"%h%x09%an%x09%ad%x09%s"
k1eran

1
@ k1eran это усечение фиксации тела (при условии , что есть один)
Erythros

1
@Erythros понял, и я считаю полезным получить краткое и удобочитаемое резюме коммитов.
k1eran

Или включая цвета и графикlog --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --first-parent
Highmastdon

18

Вы можете опустить слияния с --no-merges:

git log --no-merges --author=<name>

Подробности см. На странице руководства git log .


2
Это исключает только коммиты слияния. Но нормальные коммиты внутри этой восходящей ветки все еще видны.
Шиплу Мокаддим
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.