2015-09-17 3 views
2

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

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

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

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

Мои вопросы:

  1. Что такое имя этой функции, и где это документально? (поиск Google для :/ бесполезен)

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

    git show ":/pattern"^ 
    

ответ

2

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

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

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

1

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

Смежные вопросы