Как просмотреть историю получения репозитория git? - PullRequest
16 голосов
/ 06 октября 2010

У нас есть «центральное» репо, которое мы используем для развертывания на нашем сервере разработки. Я знаю, что git log покажет мне коммиты и дату / время, когда они были совершены, но я бы хотел увидеть, когда коммиты были переданы / получены репо. Есть ли способ сделать это?

1 Ответ

22 голосов
/ 07 октября 2010

Git's reflogs запишет указанные вами данные (дату и новую подсказку коммита).

Если ваш центральный репозиторий пуст, то, возможно, его повторные журналы не включены (они не включены по умолчанию при создании пустого репозитория). Включите их так:

git config core.logAllRefUpdates true

Вам также следует рассмотреть возможность просмотра других параметров конфигурации, связанных с reflogs (см. git-config (1) и поиск «reflog»): gc.reflogexpire , gc.reflogexpireunreachable .

Вы также можете включить receive.denyDeletes (поскольку reflog удаляется, когда удаляется его ветвь). Если вас интересует только сохранение повторных журналов в определенных ветвях, то вы можете реализовать собственную предварительную ветку «запретить удаление» с помощью ловушки получения или обновления (см. githooks (5) ).

После того, как вы включили флажки, вы можете просмотреть их с помощью
git reflog show branch-name или
git log -g branch-name (может сочетаться с другими опциями git log ).

Это все равно не будет включать другую информацию, которая может вам понадобиться (например, кто давил новый совет *), но это может помочь.
* Проблема в том, что система аутентификации (SSH, SSH + gitolite, HTTP, HTTP + git-http-backend и т. Д.) Обычно не передает эту информацию до уровня, на котором записывается новая запись reflog; Я вспоминаю, что какая-то организация (Gentoo?) Изучала что-то, что могло бы помочь записать эту информацию (так как они / рассматривали возможность перехода на Git), но я не помню подробности).

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