Есть ли какой-нибудь мерзавец для тяги?

157

Мне нужно выполнять некоторые действия (подготовить файлы сообщений gettext * .mo) для моего проекта при каждом запуске git pull. Есть ли подходящий git hook, который я мог бы использовать для этой цели, пожалуйста?

msgre
источник
15
@ Алан: Это определенно не дубликат. Этот вопрос касается крючка на местной стороне, куда вы бежите git pull. Тот, который вы связали, касается запуска крюка на пульте , когда кто-то тянет с него. (И это очень странный вопрос - это означает, что они используют непокрытый центральный репо ...)
Каскабель
2
@ Алан: Достаточно легко пропустить, если вы снимаете - надеюсь, я не был слишком резким. Я просто становлюсь параноиком из-за неправильного закрытия вопросов, поскольку повторное открытие голосов накапливается намного дольше.
Каскабель
1
Джефроми: Вы абсолютно правы. Не нужно беспокоиться. Мне было просто грустно, что я снялся и начал закрытие.
Алан Хаггай Алави

Ответы:

184

Страница githooksman - это полный список хуков. Если его там нет, его не существует.

Тем не менее, есть в пост-слияния крюк, и все тянет включают слияние, хотя и не все слияния являются подтягивает. Он запускается после слияний и не может повлиять на результат. Он никогда не выполняется, если были конфликты; Вы должны были бы подцепить это с помощью пост-фиксации хука, если это действительно важно, или вызвать его вручную.

Cascabel
источник
39
@Jefromi "все операции включают слияние", даже если я выполняю функцию --rebase?
FMaz008
11
Также обнаружено, что слияние никогда не выполняется при запуске, git pullесли нет изменений, которые нужно извлечь (вы уже в курсе).
Джо Бергантин
11
@jbergantine: я полагаю, что я был неточен в своем ответе - все попытки, которые не являются бездействующими, включают слияние. Но ... в общем, если вы пытаетесь действовать, когда происходит слияние, я не думаю, что вы хотите действовать, когда кто-то делает слияние без операции. Например, для OP было бы пустой тратой воссоздать эти файлы, если ничего не изменилось.
Каскабель
12
Если вы действительно хотите что-то делать каждый раз, когда вы тянете ... вы можете использовать псевдоним 'git pull', чтобы вызвать скрипт, который выполняет git pull, а затем делает что-то еще
Shadow Radiance,
13
git pullс rebase (либо с, --rebaseлибо с конфигурацией pull.rebase=true) не включает слияние и не вызовет ловушку после слияния. В этом случае вы можете указать, --no-rebaseчтобы убедиться, что перехват запущен, или использовать перезапись после перезаписи.
Виктор Шредер