Поиск ревизии по сообщению коммита

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

Я знаю, что могу указать коммит по шаблону, соответствующему его сообщению о коммите, а не по его хешу, например:

git show ":/rename function X to function Y"

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

Мои вопросы:

  1. Как называется эта функция и где она задокументирована? (поиск :/ в Google бесполезен)

  2. Как я могу получить родителя этого коммита? Это не работает:

    git show ":/pattern"^
    

person mkrieger1    schedule 17.09.2015    source источник


Ответы (2)


Это немного некрасиво, и может быть лучший способ, но вы можете использовать что-то вроде следующего, чтобы найти родителя:

git show $(git rev-parse ":/pattern")^

git rev-parse дает SHA1 для указанной ревизии, к которой можно применять такие операторы, как ^. В качестве альтернативы вы можете использовать git name-rev --name-only, что даст символическое имя для ревизии (например, master~10).

person Will Vousden    schedule 17.09.2015

Синтаксис :/ не имеет специального имени и задокументирован в gitrevisions(7) страница руководства.

person mkrieger1    schedule 17.09.2015