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

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

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

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


person Anshul Goyal    schedule 11.03.2016    source источник
comment
Что, если при слиянии возник конфликт, и ему нужно было его разрешить?   -  person Joe Phillips    schedule 11.03.2016
comment
@JoePhilllips Этого не происходит в рабочем процессе репо, о котором идет речь, все ветки перед объединением в мастер перебазируются.   -  person Anshul Goyal    schedule 11.03.2016
comment
используйте 1_   -  person 0xAX    schedule 11.03.2016
comment
@ 0xAX Можете опубликовать это в качестве ответа, я приму это.   -  person Anshul Goyal    schedule 11.03.2016


Ответы (3)


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

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

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

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

person 0xAX    schedule 11.03.2016
comment
еще лучше с --pretty=format:"%h%x09%an%x09%ad%x09%s" - person k1eran; 01.11.2019
comment
@ k1eran обрезает тело фиксации (при условии, что оно есть) - person Erythros; 20.11.2019
comment
@Erythros понял, и я считаю полезным получить краткое и удобочитаемое резюме коммитов. - person k1eran; 20.11.2019
comment
Или включая цвета и график log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --first-parent - person Highmastdon; 11.11.2020

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

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

Дополнительные сведения см. На странице руководства журнала git.

person morxa    schedule 11.03.2016
comment
Это исключает только коммиты слияния. Но нормальные коммиты внутри этой восходящей ветки все еще видны. - person Shiplu Mokaddim; 28.01.2020

На вопрос ОП был дан ответ. Я разъяснил ответ для скрытней. Этот длинный вызов журнала даст вам хороший обзор, отфильтрованный коммиттером без слияния. Используйте псевдоним git, чтобы приручить это, если хотите.

Я надеюсь, что это принесет пользу кому-то, и к нему не относятся слишком жестко с отрицательными голосами.

git log --no-merges --max-count=15 --pretty="format:%C(dim green) %<(9,trunc)%ar %C(bold magenta)%h %C(bold green)%<(12,trunc)%an %C(bold
yellow)%<(113,trunc)%s" --committer="<name>"

Пример:  введите описание изображения здесь

person Joe Johnston    schedule 28.04.2021