Получить информацию об объекте фиксации SHA-1? - PullRequest
61 голосов
/ 30 сентября 2011

Я искал интересующую тему в журнале коммитов:

$ git log --pretty=oneline | grep -i ...

$SHA1 < ... commit message ... >

Теперь у меня есть SHA1, и я хочу узнать информацию о файлах, которые влияют на эти SHA1, а может быть, и позже diff на их родителей. Как я могу это сделать?

Ответы [ 3 ]

91 голосов
/ 30 сентября 2011

git show <SHA1> покажет дату фиксации, автора, родителя и diff файлов, которые изменились от родительской фиксации.

6 голосов
/ 04 апреля 2016
git show --no-patch --oneline <SHA1>
git show --no-patch <SHA1>

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

Оба вопроса касаются получения информации о коммите из его кода SHA1.

Иногда, когда вы идентифицировали коммит по его коду SHA1, вам захочется узнать о нем все: все измененные файлы, что это за изменения и т. Д.

Другой вопрос гораздо более конкретен. У кого-то была подозрительная строка программного обеспечения в файле, и он отслеживал ее до определенного кода SHA1, используя «git blame». Затем они просто хотели узнать, какое изменение программного обеспечения в человеческом плане привело к появлению этой линии. Нет никакого интереса в знании всех других измененных файлов, никакого интереса к получению полного сравнения файлов или даже к получению различия этого одного файла. Это просто знание того, какое изменение ввело строку кода.

Вместо информации типа

c27feeaa9b2c6270ff559b21eaf9f1e0317676a7

нам нужна информация типа

Humanitarian Aid Feature

или

Left handed Thread Fix

Для этого используйте

git show --no-patch --oneline <SHA1>

где git show --no-patch (т.е. с параметром --no-patch) - ключ к ответу на вопрос эйканала Просмотр определенного коммита Git

Используйте

git show --no-patch <SHA1>

, если вы также хотите указать информацию об авторе и дате.

3 голосов
/ 12 декабря 2017

Вы также можете получить конкретную информацию об объекте фиксации (используя SHA1), используя команду cat-file .

Например git cat-file -p <sha1>

Пример вывода:

 $ git cat-file -p xxxx
tree <sha1>
parent <sha1>
parent <sha1>
author <author> <unix timestamp>
committer <committer> <unix timestamp>

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