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?


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.


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.