Mam kilka witryn, które są hostowane w tej samej usłudze hostingowej w ramach hostingu współdzielonego. Mój hosting obsługuje Git i mam do niego dostęp SSH, a także mam konfigurację Git na moim laptopie.
Chcę to zrobić, aby po wykonaniu „git push origin master” automatycznie zaktualizował pliki na moim serwerze internetowym, a także zapisał kopię zapasową plików poprzedniego zatwierdzenia, aby w razie potrzeby móc je łatwo przywrócić. czy to możliwe?
Odpowiedzi:
Podsumowano to w Użycie Gita do zarządzania witryną
Kluczem do tego procesu jest hak po stronie serwera „post- receive ” (więcej o hakach git w Dostosowywanie Git - Git Hooks i strona podręcznika githooks ). Ten hak działa po odebraniu przez serwer wszystkich danych.
Gdy serwer otrzyma dane, uruchomi się
git checkout -f
. Opcja -f wymusi wymeldowanie do głowy, nawet jeśli występują lokalne różnice.Umieść to w
hooks/
katalogu jakopost-receive
i plik wykonywalny. Oczywiście ścieżka zmienia się w miejsce, w którym masz pliki swojego serwera (użycieGIT_WORK_TREE
ustawia zmienną środowiskową tak, że nie musisz żonglować plikami kropkowymi i ustawieniami git na serwerze).W celu wycofania należy oznaczyć każde wydanie (można to zrobić również jako część haka po zatwierdzeniu). Oznaczając wydanie, można łatwo zidentyfikować miejsce do wycofania, chociaż prawdopodobnie wiąże się to z zalogowaniem się na serwerze i sprawdzeniem tego znacznika.
źródło
post-receive
haczyku, który jest tak naprawdę tylko skryptem, w którym możesz umieścić, co chcesz.Najprostszym sposobem na aktualizację drzewa roboczego repozytorium, do którego naciskasz, jest ustawienie
git config receive.denyCurrentBranch updateInstead
po stronie odbiornika. Zobacz https://git-scm.com/docs/git-config/#git-config-receivedenyCurrentBranchOdpowiedź Ryana z hakami po zatwierdzeniu jest lepsza, ponieważ pozwala na wyewidencjonowanie w innej lokalizacji (prawdopodobnie nie chcesz mieć .git w folderze internetowym). Ale na tym poziomie dobrym pomysłem może być użycie istniejącego narzędzia do wdrażania, takiego jak sleske w komentarzach.
źródło