Показать коммиты в определенной ветке функций после того, как ветка слита и удалена - PullRequest
0 голосов
/ 13 ноября 2018

Мы используем стиль ответвления в git. Это означает, что мы открываем ветку, работаем над ней, объединяем, а затем удаляем ветку (по умолчанию в приложениях, таких как Bitbucket, которые мы используем). У нас есть несколько разработчиков и сложное дерево. Я хотел бы иметь возможность показать что-то конкретное на дереве. Если я проверяю журнал, сгенерированный GUI, из tortoise-git, я вижу это:

enter image description here

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

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

Я бы подумал, что что-то вроде git log --second-parent (если бы оно существовало) помогло бы. Очевидно, tortoise-git может идентифицировать эти коммиты, какая команда делает то же самое?


Вещи, которые не работают:

git log Commit-Where-Branch-Started..Commit-Where-Branch-Merged
As above but with --branches

Ответы [ 2 ]

0 голосов
/ 11 марта 2019
git log --first-parent  $merge^2

, где $merge - это любой способ написания коммита слияния, синтаксис git-поиска git может быть полезен, так как сообщения слияния, как правило, имеют «ветвь слияния« красный »»,

redmerge=`git rev-parse :/Merge branch 'red'"`
git log --first-parent  $redmerge^2

или, возможно,

git log --first-parent  $(git rev-parse ":/'red'")^2

или просто зашифруйте хэш-код в результате поискового журнала.Я предполагаю, что черепаха не подкрепляет свои красивые картинки какими-либо данными, которые вы можете скопировать, хотя, если бы она использовала SVG для отображения, она могла бы, вы попытались щелкнуть по верхнему красному квадрату, чтобы увидеть, позволит ли вам скопировать коммитID

0 голосов
/ 11 марта 2019

Если у вас все еще есть удаленные коммиты в локальном журнале рефлогов, вы можете воссоздать ветку, как объяснено в этом ответе :

git checkout -b <branch> <sha>

А затем сравните с ветвью, которая использовалась для ветвления:

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