Получение git log для отображения коммиттера слияния для данного коммита - PullRequest
1 голос
/ 03 октября 2019

Я пытаюсь получить "git log", чтобы показать список коммитов для данной ветви в формате одной строки.

На данный момент у меня есть:

git log --no-merges --pretty='format:%cN, %s'

Какиевыдает:

Sarah Developer, Updated the flange pipe
Fred Tester, Implemented new testing methodology

Но я хотел бы добавить имя коммитера коммита merge , который получил коммит в эту ветку (если он есть) вконец, так что я получаю что-то вроде ...

Sarah Developer, Updated the flange pipe, Pauline Techarchitect
Fred Tester, Implemented new testing methodology, Hannah Senior

Возможно ли это?

1 Ответ

3 голосов
/ 03 октября 2019

Я не думаю, что такая функциональность существует в git "из коробки".

Идея о том, что что-то подобное возможно, похоже, основана на немного неточном понимании концепции git branch.

Технически, в git (в отличие от некоторых других VCS) ветвь является просто указателем на коммит. Концепция ветвления не включает в себя историю, в которой фиксируется указатель ветки, на который ранее указывалось. (Может быть, не совсем верно ... Существует журнал ветвлений, но он включает только события ветвей, которые произошли локально, поэтому его невозможно использовать для чего-то подобного)

Если у меня естьИстория коммитов выглядит следующим образом:

*   59817c7 - (HEAD -> master) merge commit
|\  
| * 4e5cf26 - commit b
* | dd09b38 - commit a
|/  
* e27e6cc - base commit

Вы не можете сказать, был ли commit a или commit b сделан в основной ветви, а другой - в боковой ветви. (Если вы не читаете информацию из сообщений о фиксации слияния по умолчанию). Оба коммита равны. Оба являются частью истории основной ветви, поскольку история основной ветви включает в себя все коммиты, достижимые из коммита, на который указывает основная ветвь.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...