Рассмотрим пример использования git:
- загрузку файлов проекта в репозиторий
- выгрузку их на рабочий сервер
github — это платформа, которая очень часто применяется разработчиками. С ней удобно работать когда проект разрабатывают несколько человек и когда процесс разработки происходит на нескольких машинах.
Из git загружаются на на сервере данные проекта в production. Deploy из git может производиться с github или из приватного репозитория в собственной инстраляции системы контроля версий (например, Gitlab).
Описанный способ подходит для выгрузки небольшого сайта на сервер — он значительно удобнее использования rsync поскольку позволяет в дальнейшем работать с данными отслеживая изменения, добавлять новые и передавать измененные обратно в git. Также существует возможность возврата к предыдущему состоянию.
Пример использования git: Deploy небольшого сайта из репозитория на github
Рассмотрим ситуацию когда имеются локальная машина, сервер в production и публичный репозиторий на github. В статье по ссылке можно прочитать как по шагам его создать.
Из репозитория будем получать данные, сначала кратко показан процесс их добавления в репозиторий с компьютера разработчика.
Добавление данных проекта в репозиторий
Разработка обычно ведется на локальном компьютере, когда все изменения внесены они отправляются в git
git add .
git commit -m 'made some changes'
git push -u origin master
Данные после выполнения push на компьютере и в репозитории на github находятся в одном состоянии. Из публичного репозитория их можно скачать с любого другого компьютера, в том числе с рабочего сервера
Deploy из git
Чтобы выполнить deploy из git авторизуемся на сервере по SSH
Далее заходим в каталог, в котором размещаются или будут размещаться файлы проекта.
cd /var/www/web/example.com
Инициализируем репозиторий
git init
Скачиваем все данные с github выполняя pull, по сути это и есть deploy из git
git pull https://github.com/loginongithub/example/
После того как все файлы будут переданы из публичного репозитория сайт проекта станет доступен (дополнительно может потребоваться развернуть базу данных из дампа).
! Проект станет доступен при условии что веб-сервер уже настроен для того чтобы отдавать данные из каталога приложения при запросе определенного домена.
Пример настройки веб-сервера
Информация о том как настраивается связка Nginx + Apache
Способ отлично подходит для небольших по объему проектов. Данные передаются по сети и скачиваются из публичного repo не мгновенно и если информации много — процесс может занять длительное время. Это стоит учитывать. При добавлении измений в дальнейшем процесс будет протекать быстро.
github не обязателен, его минус в том что бесплатно использование только публичных репозиториев и данные после загрузки доступны кому угодно.
Часто применяется и свое хранилище git репозиториев.
Самыми популярными решениями для хранения репозиториев являются Gitlab и Jenkins.