Назад | Перейти на главную страницу

Репозиторий Git обеспечивает соблюдение метаданных коммиттера

Цель состоит в том, что я управляю проектами, которые могут быть распределены между несколькими аутсорсинговыми агентствами, и мы хотели бы, если это возможно, не дать им узнать друг о друге, просмотрев метаданные фиксации «Имя пользователя: email@agency.com», чтобы избежать любые потенциальные политические проблемы.

Один из способов - заставить их совершить фиксацию с адресом электронной почты, который соответствует шаблону, например, «@ mycompany.com», или мы могли бы переписать адрес электронной почты, чтобы подтвердить этот шаблон?

В качестве альтернативы мы могли бы поддерживать 2 репозитория, и я или мои коллеги будем нести ответственность за периодическую миграцию коммитов между двумя, удаляя метаданные коммиттера.

В настоящее время мы используем GitLab для управления нашими репозиториями, хотя я могу представить, что с такой функциональностью можно справиться с помощью хуков перед фиксацией?

Вы можете использовать pre-commit крючок, чтобы "предупредить" пользователя о том, что он совершает фиксацию с неверными данными, но нет гарантия он будет запущен - хуки не включены по умолчанию для новых клонов (поэтому люди должны сами настраивать их), и вы можете передать --no-verify к git commit остановить pre-commit крючок от бега. Это приятно предоставить и порекомендовать, чтобы люди как можно раньше были предупреждены о том, что их коммит плохой, но его нельзя использовать для принуждать требование.

Чтобы предотвращать пользователей от «публикации» своих недействительных изменений, вам необходимо использовать update перехватчик в центральном («интеграционном») репо, который проверяет все новые отправляемые коммиты и отклоняет всю отправку, если какая-либо из коммитов не проходит проверку. Вы также захотите предоставить документацию (возможно, в самом сообщении об отклонении push-уведомления) о том, как использовать git filter-branch чтобы исправить недопустимые коммиты.