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