GIT - Автоматическое развертывание проектов
GIT - распределённая система управления версиями. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года.
Эта краткая инструкция по GIT позволит быстро научиться разворачивать и поддерживать на сервере Ваши проекты.
Настройка НА СЕРВЕРЕ
(минимальная инструкция)
Репозиторий в папке: /var/git/site.git
Рабочая папка (сайта): /var/www/test
cd /var
mkdir git && cd git
mkdir site.git && cd site.git
git init --bare
В папке /var/git/site.git/hooks
создаем файл с именем post-receive он будет копировать файлы из репозитория в рабочую папку сайта
Содержимое файла:
#!/bin/sh
git --work-tree=/var/www/test --git-dir=/var/git/site.git checkout -f
В --work-tree указываем папку, куда закидывать файлы.
--git-dir - папка репозитория
Разрешаем запускать файл:
chmod +x post-receive
Примечание: Проверяем чтобы в папке logs на файлы были права на запись для пользователя (пользователей) который (которые) будут работать с репозиторием.
Локальная машина
Рабочая папка: /my/workspace
Сервер: 192.168.1.100
Пользователь: andre
Имя удаленного репозитория: live
Примечание: Порт SSH должен быть открыт.
cd /my/workspace
mkdir project && cd project
git init
git remote add live ssh://[email protected]/var/git/site.git
Создаем, правим файлы в папке /my/workspace/project
Отправка файлов с локальной машины
git add .
git commit -m "Commit 1"
git push live master
После этого файлы из локальной машины попадают в удаленный репозиторий на сервере и копируются в рабочую папку сайта.
Откат назад и корректировка
При необходимости откатиться на один или несколько коммитов назад делай так. На сервере:
cd /var/git/site.git
git log
Видим что-то типа:
commit 23bbca65dd98b1db9e19571ba779a3af9b21281f (HEAD -> master) Author: Andrey Koryagin [email protected] Date: Thu Jun 13 13:33:44 2019 +0300Commit Wow1
commit 7a17ee44ae24a8f8e68320f27fa3fba515cd3491 Author: Andrey Koryagin [email protected] Date: Thu Jun 13 13:31:29 2019 +0300Commit Wow
commit bfe5f3b9efe6faca32b3463fb4a63cd5645c8482 Author: Andrey Koryagin [email protected] Date: Thu Jun 13 13:24:49 2019 +0300Commit Test2
commit 7d888f5edc635801e2f3eb111927b9fc74085bf4 Author: Andrey Koryagin [email protected] Date: Thu Jun 13 13:23:27 2019 +0300Commit Test1
Смотрим имена комитов и находим нужный, например, предыдущий 7a17ee44ae24a8f8e68320f27fa3fba515cd3491
Откатываем на нужный нам каммит:
git --work-tree=/var/www/test --git-dir=/var/git/site.git checkout 7a17ee44ae24a8f8e68320f27fa3fba515cd3491
Далее спокойно НА ЛОКАЛЬНОЙ МАШИНЕ правим файлы и спокойно заливаем как делали это раньше. В результате на сервере в репозитории появятся обновления, а в папке сервера НЕТ! Потому как HEAD смотрит на коммит, который мы указали при откате.
В этом можно убедиться посмотрев результат команды:
git log --all
--all нужен чтобы посмотреть все коммиты, без него будет видны только коммиты до того на который сейчас смотрит HEAD.
Теперь на сервере нужно вернуть репозиторий в нормальное состояние командой:
git --work-tree=/var/www/test --git-dir=/var/git/site.git checkout master
После чего в рабочей папке появится крайнее обновление. А HEAD будет указывать куда надо. Работаем дальше и не косячим.
Клонирование
Для того чтобы скачать репозиторий с сервера на локальную машину, в какой нибудь рабочей папке выполняем:
git clone ssh://[email protected]/var/git/site.git
Для удобства можно его обозвать live, как раньше:
git remote add live ssh://[email protected]/var/git/site.git
Можно работать.
Pull
Если на сервере были обновления и Вам нужно их скопировать в локальный репозиторий:
git pull ssh://[email protected]/var/git/site.git
GitWeb
В каталоге /var/git/site.git запускаем:
git instaweb
Возможно перед этим потребуется установить lighttpd
. Сервер запуститься на порту 1234. В браузере смотрим http:/127.0.0.1:1234
Для остановки сервера:
git instaweb --stop
Полезное чтиво
Недавні записи
- FOC - своя реалізація векторного керування. Підбиваю підсумки 2022 року
- Конструктор регуляторів моторів. Підбиваю підсумки 2022 року.
- Чому трифазні мотори стали такими популярними?
- FOC & Polar coordinates
- Конструктор регуляторів PMSM, BLDC двигунів
- Своя бібліотека для векторного керування безколекторними моторами
- Not Allowed
- Адаптивний ПІД регулятор
- Конструктор регуляторів моторів. Структура.
- Конструктор регуляторів моторів. Анонс.
Tags
wifi bme280 lcd dht11 solar displays bldc i2c adc usart gpio books brushless raspberry-pi python nodemcu bkp ethernet web git servo rfid stm32 ssd1331 barometer piezo timer battery sms mpu-9250 flash smd soldering st-link bmp280 exti bluetooth esp8266 watchdog nvic dc-dc max1674 hih-4000 flask websocket ngnix ssd1306 gps rs-232 eb-500 html mpu-6050 usb rtc encoder pwm avr led motor mpx4115a programmator capture dma css atmega eeprom foc meteo options examples docker 3d-printer pmsm mongodb tim uart sensors remap java-script
Архіви