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?
@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.
@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.
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 ...)Odpowiedzi:
Strona
githooks
podrę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.
źródło
git pull
jeśli nie ma żadnych zmian do pobrania (jesteś już aktualny).git pull
z rebase (z--rebase
konfiguracją lub z konfiguracjąpull.rebase=true
) nie obejmuje scalania i nie wywołuje zaczepu po scaleniu. W tym przypadku możesz określić,--no-rebase
czy podpięcie jest wyzwalane, lub użyć podpięcia po przepisaniu.post-merge
- zobacz https://git-scm.com/docs/githooks#_post_merge, aby uzyskać więcej informacji o tym, jak z niego korzystać.źródło