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


157

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


15
@ Алан: Это определенно не дубликат. Этот вопрос касается крючка на местной стороне, куда вы бежите git pull. Тот, который вы связали, касается запуска крюка на пульте , когда кто-то тянет с него. (И это очень странный вопрос - это означает, что они используют непокрытый центральный репо ...)
Каскабель

2
@ Алан: Достаточно легко пропустить, если вы снимаете - надеюсь, я не был слишком резким. Я просто становлюсь параноиком из-за неправильного закрытия вопросов, поскольку повторное открытие голосов накапливается намного дольше.
Каскабель

1
Джефроми: Вы абсолютно правы. Не нужно беспокоиться. Мне было просто грустно, что я снялся и начал закрытие.
Алан Хаггай Алави

Ответы:


184

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

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


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чтобы убедиться, что перехват запущен, или использовать перезапись после перезаписи.
Виктор Шредер

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.