Я пытаюсь получить «Git Bog», чтобы показать список коммитов для данного филиала в однострочном формате.

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

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

Что производит:

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

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

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

Это возможно?

git
1
Andrew Beresford 3 Окт 2019 в 15:04

1 ответ

Лучший ответ

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

Идея о том, что что-то подобное может быть возможно, кажется, основано на незначительном неточном понимании концепции филиала Git.

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

Если у меня есть история совершения, как это:

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

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

Концепция филиала, поскольку нам нравится думать об этом в разговорном порядке (т. Е. Один из родителей слияния Commit Compart «- это« главный филиал, а другой »-« Функциональный филиал) определяется вашим рабочим процессом, но оно не технически построено в информационную модель GIT.

3
Alderath 3 Окт 2019 в 12:50