Git хук, чтобы определить, содержит ли извлеченный репозиторий файл и остановить слияние - PullRequest
0 голосов
/ 20 февраля 2020

Хотя это и не идеально, наш процесс сборки оставляет наше удаленное репозиторий git в состоянии "вне синхронизации c" на несколько минут, когда исходный код не соответствует дампу скомпилированного кода / схемы БД , которые совершают git. Мы исследовали способы предотвратить это, но сделать это невозможно в ближайшем будущем.

Мы хотели бы реализовать простую ловушку git, которая предупреждает любого разработчика, когда он снесет репо в таком состоянии. Это можно сделать, просто обнаружив наличие одного или нескольких файлов. Как бы мы реализовали ловушку, которая работает на git merge (и, следовательно, также git pull), которая остановит объединение и напечатает сообщение терминала, если какой-либо из этих файлов существует в репо?

1 Ответ

1 голос
/ 20 февраля 2020

Не существует способа реализовать хук, который в общем случае завершается неудачей слияния. Есть хук pre-merge-commit, но он применяется только тогда, когда слияние не является быстрой перемоткой вперед. Поскольку большинство ваших разработчиков, вероятно, собираются выполнить ускоренное слияние с их веткой master, не будет способа выполнить это действие. Также нет никаких хуков, которые вы можете использовать для отмены извлечения, если вы об этом подумали.

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

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