Existe algum gancho para puxar?

157

Preciso executar algumas ações (preparar arquivos de mensagens gettext * .mo) no meu projeto sempre que executo git pull. Existe algum gancho git adequado que eu possa usar para esse fim, por favor?

msgre
fonte
15
@ Alan: Isso definitivamente não é uma duplicata. Esta pergunta é sobre um gancho no lado local , onde você executa git pull. O que você vinculou é sobre acionar um gancho no controle remoto , quando alguém o puxa. (E é uma pergunta muito estranha - isso implica que eles estão usando um repositório central de não-nua ...)
Cascabel
2
@ Alan: Fácil o suficiente para errar se você estivesse passando mal - espero que eu não tenha sido muito duro. Eu fico paranóico com o fechamento incorreto das perguntas, pois a reabertura dos votos leva muito mais tempo para se acumular.
Cascabel
1
Jefromi: Você está absolutamente certo. Não precisa se preocupar. Fiquei triste por ter deslizado e iniciado o fechamento.
Alan Haggai Alavi

Respostas:

184

A githookspágina do manual é uma lista completa de ganchos. Se não estiver lá, não existe.

Dito isto, não é um gancho post-merge, e todos os puxa incluem uma fusão, embora nem todas as fusões são puxadas. É executado após mesclagens e não pode afetar o resultado. Ele nunca é executado se houver conflitos; você teria que pegar isso com o gancho pós-confirmação, se realmente importa, ou invocá-lo manualmente.

Cascabel
fonte
39
@ Jeffefi "todos os puxões incluem uma mesclagem", mesmo se eu fizer um pull --rebase?
FMaz008
11
Também foi encontrado que a mesclagem nunca é executada durante a execução git pullse não houver alterações a serem extraídas (você já está atualizado).
21812 Joe Bergantine
11
@ jbergantine: Suponho que fui impreciso na minha resposta - todas as tentativas que não são não-ops incluem uma mesclagem. Mas ... em geral, se você está tentando agir sempre que uma mesclagem acontece, não acho que você queira agir quando alguém faz uma mesclagem não operacional. Por exemplo, seria um desperdício para o OP recriar esses arquivos se nada mudou.
Cascabel
12
Se você realmente quer fazer algo cada vez que você puxa ... você poderia Alias 'git pull' para que você chama um script que faz o git pull, em seguida, faz outra coisa
Sombra Radiance
13
git pullcom rebase (com --rebaseou com a configuração pull.rebase=true) não inclui uma mesclagem e não acionará o gancho pós-mesclagem. Nesse caso, você pode especificar --no-rebasepara garantir que o gancho seja acionado ou fazer uso do gancho de pós-reescrita.
Victor Schröder