Как обнаружить файл изменен в GIT во время push
Когда я помещаю что-то в свой GIT-репозиторий, запускается ловушка post-receive и выполняется несколько сценариев. Можно ли что-то сделать перед выполнением этих сценариев, если (и только если) конкретный файл изменяется относительно предыдущего нажатия (например, файла.sql)?
Спасибо
Перемешайте
1 ответ
Решение
В том же хуке после получения в качестве первого шага или в хуке предварительного получения или обновления вы можете использовать
git diff-tree --name-status -rz
и передайте новый и старый ref, которые передаются в ловушку (либо stdin, либо аргументы), и получите файлы, проверьте на наличие изменений - M - статус и сделайте то, что вам нужно.
Также смотрите здесь для альтернативных способов: http://progit.org/book/ch7-4.html