У нас есть "центральное" репо, которое мы используем для развертывания на нашем сервере разработки. Я знаю, что git log
покажет мне фиксации и дату/время, когда они были совершены, но я хотел бы видеть, когда реплики были отправлены/получены. Любой способ сделать это?
Как просмотреть историю получения git репо?
Ответ 1
Git s reflogs запишет ваши указанные данные (дата и новый отзыв).
Если ваш центральный репозиторий голый, то его блокировки, вероятно, не включены (они не включены по умолчанию при создании открытого хранилища). Включите их следующим образом:
git config core.logAllRefUpdates true
Вы также должны рассмотреть возможность просмотра других параметров конфигурации, связанных с reflogs (см. git -config (1) и поискать "reflog" ): gc.reflogexpire, gc.reflogexpireunreachable.
Вы также можете включить enable.denyDeletes(поскольку reflog удаляется при удалении ветки). Если вы беспокоитесь только о сохранении логов в определенных ветвях, вы можете реализовать свою собственную ветвь "запретить удаление" с помощью крючка приема или обновления (см. githooks ( 5)).
После того, как вы включили рефлоги, вы можете просмотреть их содержимое либо с помощью
git reflog show branch-name
или git log -g branch-name
(либо может быть объединен с другими параметрами журнала git).
Это все равно не будет содержать другую информацию, которая вам может понадобиться (например, кто нажал новый совет *), но это может помочь.
*
Проблема заключается в том, что система аутентификации (SSH, SSH + gitolite, HTTP, HTTP + git-http-backend
и т.д.) Обычно не передает эту информацию до уровня, который записывает новую запись reflog; Я помню, что какая-то организация (Gentoo?) Изучала что-то, что помогло бы записать эту информацию (поскольку они рассматривают возможность перехода на Git), но я не помню подробностей).