Как обнаружить файл изменен в GIT во время push

Когда я помещаю что-то в свой GIT-репозиторий, запускается ловушка post-receive и выполняется несколько сценариев. Можно ли что-то сделать перед выполнением этих сценариев, если (и только если) конкретный файл изменяется относительно предыдущего нажатия (например, файла.sql)?

Спасибо

Перемешайте

1 ответ

Решение

В том же хуке после получения в качестве первого шага или в хуке предварительного получения или обновления вы можете использовать

git diff-tree --name-status -rz

и передайте новый и старый ref, которые передаются в ловушку (либо stdin, либо аргументы), и получите файлы, проверьте на наличие изменений - M - статус и сделайте то, что вам нужно.

Также смотрите здесь для альтернативных способов: http://progit.org/book/ch7-4.html

Другие вопросы по тегам