Есть ли какой-нибудь крючок для тяги?

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


person msgre    schedule 15.11.2010    source источник
comment
@Alan: Это точно не дубликат. Этот вопрос касается ловушки на стороне local, где вы запускаете git pull. Тот, который вы связали, касается срабатывания крючка на удаленном, когда кто-то его тянет. (И это очень странный вопрос - он подразумевает, что они используют не-голое центральное репо ...)   -  person Cascabel    schedule 15.11.2010
comment
@Alan: Достаточно легко пропустить, если ты скимминг - надеюсь, я не был слишком резким. Я просто параною отношусь к тому, что вопросы закрываются неправильно, поскольку повторное открытие голосов занимает гораздо больше времени.   -  person Cascabel    schedule 15.11.2010
comment
Джефроми: Вы абсолютно правы. Не о чем беспокоиться. Мне было просто грустно, что я промелькнул и инициировал закрытие.   -  person Alan Haggai Alavi    schedule 15.11.2010


Ответы (2)


Справочная страница githooks представляет собой полный список ловушек. Если его там нет, значит, его не существует.

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

person Cascabel    schedule 15.11.2010
comment
Спасибо, Джефроми, похоже, что я ищу пост-слияние. - person msgre; 15.11.2010
comment
@Jefromi все запросы включают слияние, даже если я выполняю операцию --rebase? - person FMaz008; 25.11.2011
comment
Обновление для страницы руководства githook, предыдущая ссылка кажется неработающей: manpagez.com/man/5/ githooks - person FMaz008; 25.11.2011
comment
@ FMaz008: Все ссылки на справочную страницу Git некоторое время не работают, так как kernel.org не работает. kernel.org недавно вернулся, так что, надеюсь, ссылки на man-страницу снова заработают. В любом случае, наверное, не стоит пытаться найти их все на SO - их слишком много. - person Cascabel; 25.11.2011
comment
Также было обнаружено, что слияние никогда не выполняется при запуске git pull, если нет изменений, которые нужно втянуть (у вас уже есть последняя версия). - person Kinsa; 21.09.2012
comment
@jbergantine: Полагаю, я был неточным в своем ответе - все запросы, которые не являются операциями без операций, включают слияние. Но ... в общем, если вы пытаетесь действовать всякий раз, когда происходит слияние, я не думаю, что вы хотите действовать, когда кто-то выполняет слияние без операции. Например, OP было бы бесполезно воссоздавать эти файлы, если ничего не изменилось. - person Cascabel; 21.09.2012
comment
Если вы действительно хотите что-то делать каждый раз, когда вы тянете ... вы можете использовать псевдоним git pull, чтобы вы вызывали скрипт, который выполняет git pull, а затем делает что-то еще - person Shadow Radiance; 20.06.2014
comment
git pull с перебазированием (либо с --rebase, либо с конфигурацией pull.rebase=true) не включает слияние и не запускает ловушку после слияния. В этом случае вы можете указать --no-rebase, чтобы гарантировать срабатывание ловушки, или использовать ловушку после перезаписи. - person Victor Schröder; 01.09.2015
comment
@ShadowRadiance: это должен быть псевдоним оболочки, а не псевдоним Git, поскольку Git не позволяет перезаписывать команды псевдонимом. - person Flimm; 07.01.2016
comment
@Flimm спасибо за разъяснение моего комментария - это действительно то, что я имел в виду - псевдоним bash, например, который запускает сценарий bash, который вызывает git pull, а затем делает все, что вы хотите - person Shadow Radiance; 07.02.2016
comment
страница руководства @foo не является опечаткой. Это буквально то, что называется этой страницей, и вы можете просмотреть ее на своем компьютере, запустив man githooks. - person Cascabel; 26.07.2017
comment
@Jefromi TIL! прости за это! - person Laszlo; 27.07.2017

post-merge - см. https://git-scm.com/docs/githooks#_post_merge для подробнее о том, как его использовать.

person Snowcrash    schedule 09.02.2018