Как показать дату и время коммита по хешу - PullRequest
0 голосов
/ 21 мая 2018

Я использовал git reflog для определения хэша, когда я создавал конкретную ветку.Я получил хэш fe1ddcdef.Я еще не перенес эту ветку на пульт.Сейчас я пытаюсь найти дату и время, когда произошло fe1ddcdef.git reflog показывает только:

fe1ddcdef HEAD@{11}: checkout: moving from master to handoff

, у которого нет даты или времени.

git log слишком многословно, поскольку содержит коммиты извсе мои коллеги, и я не могу легко найти иголку fe1ddcdef в этом стоге сена.

Как я могу просто найти дату и время совершения fe1ddcdef?

Ответы [ 3 ]

0 голосов
/ 21 мая 2018

Я сейчас пытаюсь найти дату и время, когда fe1ddcdef имело место

"Место занято" не очень хорошо определено, но я могу заметить, что каждый коммит имеетс ним связаны две метки даты и времени: дата автора и дата фиксации .

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

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

Чтобы увидеть обе даты, используйте, например:

git log --no-walk --pretty=fuller fe1ddcdef

Чтобы увидеть только один, вы можете пропустить формат или использовать git show <hash> (который также показывает diff).Чтобы получить просто дату или даты, используйте --pretty=format:<directives> или --format=<directives>.Директивы, которые печатают дату автора, имеют форму %a<letter>, а директивы, которые печатают дату коммиттера, имеют форму %c<letter>, где часть <letter> является одной из d, D, r, t, i или I.Для получения более подробной информации см. Раздел PRETTY FORMATS документации git log .

.
0 голосов
/ 21 мая 2018

Просто используйте:

git show fe1ddcdef

…, чтобы отобразить содержимое коммита.На самом деле, если у вас есть какое-либо выражение, идентифицирующее объект фиксации, вы можете использовать его во всех местах, где требуется ревизия.Эти выражения могут быть шестнадцатеричным хешем (даже частичным), именем ветви или именем тега.Это также может быть один из них, связанный с одним или несколькими операторами, такими как «^», или «~», или «@».

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

Если вы хотите получить только дату и время и ничего больше, вы можете набрать:

git show --no-patch --no-notes --pretty='%cd' fe1ddcdef

Заменить '%cd' на '%h %cd %s' чтобы добавить сводку по хэшу и тему сообщения коммита.

0 голосов
/ 21 мая 2018

Вы можете попробовать

git reflog --date=iso

Вы также можете создавать свои собственные форматы, используя git pretty format .Также посмотрите этот ответ , чтобы узнать больше вариантов.

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