2013-08-02 2 views
1

Я работаю в команде, которая работает с репозиторием git. У нас есть источник и несколько местных копий. Все взаимодействуют с источником разными способами: от Unix, от Windows, оболочки Unix, оболочки Windows, NetBeans, PHPStorm. Бывает, что кто-то удалил несколько локальных и удаленных филиалов. Мы уже их восстановили.Как узнать, кто удаляет ветку в git?

Но как найти человека, который несет за это ответственность?

Я проверил git reflog, но не вижу ничего подозрительного там.

ответ

3

Git не сохраняет контрольный журнал операций, выполненных для репо.
Плюс у него нет механизма аутентификации, поэтому он не знает кто сделал что.

Чтобы отслеживать это (кто что сделал), вам нужно добавить в центральный репо authorization layer, как gitolite.

Это предполагает, что вы общаетесь с вашим центральным репо через механизм аутентификации, как:

  • Apache
  • SSH

(используя общий путь или GIT URL не будет включать в себя идентификатор аутентификации что гитолит должен проверить/разрешить команду git)

Идея состоит в том, что, поскольку гитолит проверяет все команды git на основе того, кто лет У вас есть уникальная позиция, чтобы сохранить следы аудита (кто сделал что) после вас.

+0

Вы используете такой инструмент? –

+0

@viakondratiuk см. Http://stackoverflow.com/a/13320256/6309 – VonC