Пытаюсь разобраться с пользовательскими хуками в гите.
Задача состоит в том, чтобы сравнивать текущее состояние ветки с получаемыми изменениями и в случае изменения определённых файлов дальше выполнять что-нибудь нужное.
Соответственно, использую git diff-tree
для получения различий в состоянии ветки.
С post-checkout
проблем не возникает. Насколько я понимаю он выполняется при клонировании репозитория или переключении ветки, мне он нужен только для первого случая и прекрасно работает.
А вот post-merge
срабатывает только в том случае, если репозиторий уже содержит какие-то файлы. Если же изначально был склонирован пустой репозиторий, то когда я наполняю источник и выполняю git pull
, этот хук вообще игнорируется.
Проблема в том, что я не могу сказать заранее, будет ли репозиторий склонирован пустым или с каким-то содержимым, так что надо обработать и тот, и другой случай.
Есть ли какой-то хук, который работает при получении изменений в пустой репозиторий, или тут надо думать в какую-то другую сторону?