Witam,
Będę dokonywał zmian na serwerze globalnym. W jaki sposób mogę przywrócić kopię w razie błędu?
Czy mogę użyć programu GIT do tego celu?
Jeżeli tak to jak to zrobić mając dostęp ssh?
Pozdrawiam,
Darek
Witam,
Będę dokonywał zmian na serwerze globalnym. W jaki sposób mogę przywrócić kopię w razie błędu?
Czy mogę użyć programu GIT do tego celu?
Jeżeli tak to jak to zrobić mając dostęp ssh?
Pozdrawiam,
Darek
Możesz użyć gita, ale instalacji i sposobu korzystania z tego Ci tu nikt nie napisze, bo o tym całe książki powstają, pytanie jest zbyt rozległe. git tutorial
w Google i miłej nauki :)
Git nie potrzebuje serwera. Dobrze mieć repozytorium na jakimś serwerze, ale nie jest to konieczne. Możesz trzymać repozytorium tylko u siebie lokalnie.
Na bezpiecznym serwerze tworzysz puste zdalne repozytorium
sciezka_do_katalogu/repo_zdalne # git init --bare
Wchodzisz do katalogu, w którym będziesz robił modyfikacje na serwerze globalnym i dodajesz cały kod do repozytorium zdalnego
katalog_modyfikacji # git init
katalog_modyfikacji # git remote add production_upstream ssh://user@host:1234/srv/git/sciezka_do_katalogu/repo_zdalne
katalog_modyfikacji # git add .
katalog_modyfikacji # git ci -m 'production init commit'
katalog_modyfikacji # git push --set-upstream production_upstream master
Teraz kod, który będziesz modyfikował jest na repo zdalnym i jest wersjonowany (na tym etapie możesz wycofywać zmiany).
Sugeruję teraz zrobić git clone gdzieś na serwerze developerskim i na nim robić modyfikacje
(wymaga odwzorowania produkcji na potrzeby modyfikacji, czyli katalog "dev_zmiany" powinien być wskazany w apachu jako webroot, do tego baza danych itd.)
git clone ssh://user@host:1234/srv/git/sciezka_do_katalogu/repo_zdalne dev_zmiany
Następnie utworzyć brancha na te zmiany na developerce.
Commitujesz swoje działające zmiany i jak skończysz pushujesz całość na repo zdalne.
Na serwerze globalnym w katalog_modyfikacji robisz git fetch production_upstream i możesz teraz przełączyć się na nowego brancha ze zmianami (opcjonalnie scalić mastera z tym branchemi i tym samym od razu wprowadzić zmiany na produkcję).
(nie scalając się z masterem, dajesz sobie szanse na produkcji przełączania między starą wersją (master), a nową wersją (nowy_branch) na wypadek jakby coś nie zadziałało)
Jak działa, to możesz scalić mastera z nowym branchem i przełączyć się na mastera, a nowy branch usunąć (wyłączyć stronę na czas przełączenia).
W takim modelu pracy nie pracujesz na produkcji, tylko bezpiecznie na developerce, a jak już zmiany są stabilne wtedy trafiają na produkcję.
[Adam W.]