@procode
Разработчик

Как при помощи Git ведя разработку в одной папке на VPS потом деплоить результаты в другую папку?

Здравствуйте.

Я таки решил в 100500-й раз попытаться освоить Git (ведь если им научилось пользоваться столько людей - значит в принципе это возможно, логично же?)))). Начать хочу с решения практической задачи - помогите мне пожалуйста.

1. Я веду сейчас разработку некоего проекта на Laravel. Коды правлю удаленно, на VPS под Ubuntu 18.04, при помощи Notepad++ и WinSCP.

2. Первично правлю коды в одной папке на одном домене, а потом, как все начинает более-менее работать - копирую файлы в другую папку (для другого домена) на том же сервере. Файлы иногда копирую при помощи mc, иногда кидаю в локальную папку, а потом обратно))

3. Подскажите пожалуйста конкретные команды для Git, которые помогут мне автоматизировать этот процесс, и одновременно позволят сохранять ключевые точки проекта (я сейчас делаю это в архивы). Если можно - прям с нуля (Git я установлю сам)))

4. Нужно ли для этого использовать GitHub или его аналоги?

В общем, хочу начать с такого вот.

Спасибо.

П.С. По мотивам общения ниже:

Создастся папка /home/user/deploy с копией репозитория, там можно делать git pull для обновления, но работать там будет сложно (не буду сейчас вдаваться в подробности), но это и не требуется, это же деплой. Работать надо в /home/user/repo.


Я исходно не совсем полно сформулировал задачу: по сути, мне нужно, чтобы можно было работать в обоих папках, полноценно.

Скажем так: результаты одной папки видны заказчику из веба - мы на ней согласовываем детали и правки, а в другой папке я чисто веду разработку. Но иногда, приходится править и в другой папке, той, что для заказчика - когда это мелкие изменения, которые я вношу прямо по ходу об суждения в реалтайме.

И вот я как-то хочу все это хозяйство синхронизировать и автоматизировать, чтобы не таскать эти файлы туда-сюда руками, забывая где именно я сделал последнюю правку )))

Я так понял, что Git как раз для этого и был создан :)

В принципе, могу это делать и через GitHub, используя его в качестве посредника (если это нужно) - мне сейчас главное понять, что конкретно нужно куда вводить и делать))))
  • Вопрос задан
  • 337 просмотров
Решения вопроса 2
Yar_Rick
@Yar_Rick
yareg.com
Нужно сделать git clone из папки с репо в нужную папку для deploy. Git работает не только по сети, но и локально. Например, папка с репо находится в /home/user/repo, а нужно задеплоить в /home/user/deploy:

cd /home/user && git clone /home/user/repo deploy

Создастся папка /home/user/deploy с копией репозитория, там можно делать git pull для обновления, но работать там будет сложно (не буду сейчас вдаваться в подробности), но это и не требуется, это же деплой. Работать надо в /home/user/repo.

Папка с исходным репо (/home/user/repo) может быть склонирована с Github/Gitlab, если так удобнее. Можно сделать приватное репо прямо на сервере, соединяться по ssh с домашней машины, но для этого нужно будет немного больше изучить Git :)

Ключевые точки проекта Git сохраняет сам при коммите. Всегда можно откатиться на какой-то коммит при помощи git checkout {COMMIT_HASH}.
Ответ написан
@artem78
Сделайте отдельно две ветки - одну под разработку, другую для рабочей версии проекта. Назовём их, к примеру, develop и production. У себя работаете только с веткой develop. Когда сделали и протестировали некоторый новый функционал, мержите всё это дело в production. И ещё добавьте хук для автоматического обновление файлов на рабочем сервере при изменениях ветки production (возможно ещё применение миграций БД потребуется (если используете) и пр.).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы