У нас есть три основные ветви в нашем рабочем процессе.
TEST (экспериментальный), RELEASE (функции, которые появятся в следующем выпуске) и MASTER (только выпущенные)
Мы берем ветки функций из RELEASE, сначала объединяем ветки функций в TEST и, если они в порядке, объединяем эти утвержденные ветки функций в RELEASE.
Моя проблема: поскольку ветка TEST содержит некоторые коммиты/функции, которые мы никогда не будем выпускать, мы не хотим, чтобы она была объединена в RELEASE или MASTER по ошибке (или намеренно).
Я где-то читал, что невозможно или невозможно предотвратить слияния в локальных репозиториях, и я не думаю, что это решит мою проблему.
Поэтому, вероятно, лучше предотвратить обновления ссылок MASTER или RELEASE ветки в основном репозитории (путем отправки в источник), когда новая ссылка содержит определенный идентификатор фиксации ветки TEST в своем журнале фиксации.
Поэтому я сделаю конкретную фиксацию только для ветки TEST и запишу ее идентификатор фиксации.
Всякий раз, когда кто-то хочет нажать на главную или релизную ветку, я проверю, обновит ли этот толчок мои refs/heads/master или refs/heads/RELEASE до фиксации ref, которая содержит этот неверный идентификатор фиксации в своей истории, и прервется.
Поскольку я не мастер BASH или GIT, есть ли у кого-нибудь такой хук обновления, который мы можем применить к нашему основному репозиторию?