Запуск git pull
не вызывает ловушку после обновления: git pull
- это git fetch
, за которым следует либо git rebase
или git merge
, более или менее, и перебазирование фактически заканчивается на git checkout
, пока объединение, ну, слить.(Для так называемых fast-forward слияний git merge
делает что-то гораздо более похожее на git checkout
внутри, но также обновляет текущее имя ветви.) Таким образом, эти два крючка являются гораздо более подходящими кандидатами для этого
Git включает contrib/hooks/setgitperms.perl
пример сценария , который предназначен для использования в post-checkout
и post-merge
ловушках.
(Стоит также упомянутьчто запуск git pull
на работающем сервере не обязательно является хорошей стратегией развертывания. Сам Git не является системой развертывания, и ни push-to-deploy, ни pull-to-deploy сами по себе не подходят для многих реальных установок.может работать для ограниченных подмножеств, но в общем, подумайте о создании или использовании реальной системы развертывания.)