Czy jest jakiś hak git do ciągnięcia?

157

Muszę wykonać pewne czynności (przygotować pliki wiadomości gettext * .mo) na moim projekcie za każdym razem, gdy uruchamiam git pull. Czy jest jakiś odpowiedni hak git, którego mógłbym użyć w tym celu?

msgre
źródło
15
@Alan: To zdecydowanie nie jest duplikat. To pytanie dotyczy haka po lokalnej stronie, po której biegasz git pull. Ten, z którym się łączysz, dotyczy odpalenia zaczepu na pilocie , gdy ktoś z niego pociągnie. (I jest to bardzo dziwne pytanie - sugeruje, że używają nie nagiego centralnego repozytorium ...)
Cascabel
2
@Alan: Dość łatwo przeoczyć, gdybyś się skubał - mam nadzieję, że nie byłem zbyt ostry. Po prostu wpadam w paranoję, że pytania są nieprawidłowo zamykane, ponieważ ponowne otwarcie głosów trwa znacznie dłużej.
Cascabel
1
Jefromi: Masz całkowitą rację. Nie musisz się martwić. Byłem po prostu smutny, że przejrzałem i zainicjowałem zamknięcie.
Alan Haggai Alavi

Odpowiedzi:

184

Strona githookspodręcznika zawiera pełną listę punktów zaczepienia. Jeśli go tam nie ma, to nie istnieje.

Powiedział, że jest hak post-seryjnej, a wszystkie ciągnie obejmują seryjnej, choć nie wszystkie są scala ciągnie. Jest uruchamiany po scaleniu i nie może wpływać na wynik. Nigdy nie zostanie wykonany, jeśli wystąpią konflikty; musiałbyś to odebrać za pomocą haka po zatwierdzeniu, jeśli to naprawdę ma znaczenie, lub wywołać go ręcznie.

Cascabel
źródło
39
@Jefromi "all pulls include a merge", nawet jeśli wykonam pull --rebase?
FMaz008,
11
Stwierdzono również, że scalanie nigdy nie jest wykonywane podczas uruchamiania, git pulljeśli nie ma żadnych zmian do pobrania (jesteś już aktualny).
Joe Bergantine,
11
@jbergantine: Przypuszczam, że moja odpowiedź była nieprecyzyjna - wszystkie pull'y, które nie są operacjami no-op, obejmują scalanie. Ale ... ogólnie rzecz biorąc, jeśli próbujesz podjąć akcję za każdym razem, gdy nastąpi scalenie, nie sądzę, że chcesz podejmować działania, gdy ktoś wykonuje scalanie bez operacji. Na przykład byłoby marnotrawstwem dla OP ponowne odtworzenie tych plików, jeśli nic się nie zmieniło.
Cascabel,
12
Jeśli naprawdę chcesz coś zrobić za każdym razem, gdy pociągniesz ... możesz alias `` git pull '', aby wywołać skrypt, który wykonuje git pull, a następnie robi coś innego
Shadow Radiance
13
git pullz rebase (z --rebasekonfiguracją lub z konfiguracją pull.rebase=true) nie obejmuje scalania i nie wywołuje zaczepu po scaleniu. W tym przypadku możesz określić, --no-rebaseczy podpięcie jest wyzwalane, lub użyć podpięcia po przepisaniu.
Victor Schröder