выставить дату, когда коммит был помещен в репозиторий - PullRequest
3 голосов
/ 29 июля 2010

Я ищу способ увидеть дату, когда коммит был перенесен в удаленный репозиторий. Используя git log, вы можете видеть как дату автора, так и дату фиксации; тем не менее, ни одна из этих дат не говорит вам, когда разработчик действительно занялся внедрением изменений в основной удаленный репозиторий.

Сначала я думал, что то, что я искал, просто недоступно в git, но потом я обнаружил, что указание диапазона дат в команде журнала фактически фильтрует коммиты по дням, когда они были отправлены в главное удаленное хранилище. Вот пример:

  1. Допустим, я создал и зафиксировал патч для своей локальной ветки master 1 июля 2010 года. Но теперь это 28 июля, и я наконец-то приступил к выполнению push up для удаленного главного репо.

  2. Затем я делаю 'Выборку', чтобы убедиться, что мой локальный источник / мастер обновлен с удаленным главным репо.

  3. Я смотрю журнал для источника / мастера, выполнив:

    git log --format="format:%H %nAuthor Date: %ad %nCommit Date: %cd %n" origin/master
    

    Результаты журналов показывают, что это было создано и зафиксировано 1 июля 2010 г., хотя оно было просто отправлено в удаленное хранилище.

  4. Итак, я указываю диапазон дат (начиная с ... до)

    git log --format="format:%H %nAuthor Date: %ad %nCommit Date: %cd %n" origin/master@{"1 hour ago"}..origin/master
    

    и, к моему изумлению, git знает, что это было отправлено в удаленный репозиторий в течение последнего часа, даже если оно было создано и зафиксировано несколько недель назад.

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

1 Ответ

3 голосов
/ 29 июля 2010

К сожалению, синтаксис @ {"1 час назад"} проверяет reflog рассматриваемой ветви (в данном случае origin / master).Этот рефлог уникален для каждого клона и не выдвигается, не вытягивается и не клонируется.Кроме того, значение по умолчанию для core.logAllRefUpdates для пустых репозиториев равно false, поэтому на обычном «сервере» не будет reflogs, которые бы предоставили вам эту информацию.

Чтобы уточнить, «1 час»«назад» относится к моменту извлечения, а не к тому, когда кто-то нажал

Если для core.logAllRefUpdates было установлено значение true в «голом» репозитории, вы можете перейти к нему и «git reflog show branch», чтобы оглянуться назад при каждом нажатии ичто оно содержало

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