Как мне настроить работу с git для prod и dev сайта?

Подскажите, пожалуйста, как правильно сделать.

Есть сайт prod.site.com. Он без git.
Я создал dev.site.com от prod.site.com, на котором буду вести разработку.
Использую bitbucket.
Залил в bitbucket сайт с локального компьютера.
Сделал git pull на dev.site.com, настроил конфиги - работает. Теперь я могу вести разработку на нем и коммитить свои правки.

Осталась очередь за prod.site.com. Как мне подключить его к git? Внутри сайта я не могу сделать git pull, потому что она не пустая.
Раньше я делал следующим образом: переименовывал папку с сайтом (например, prod.site.com1), создавал рядом папку prod.site.com (она пустая) и делал туда git pull. И уже с папки prod.site.com1 заменял в папке prod.site.com конфиги на актуальные и т.д.
Но выглядит это ужасно и не удобно. Подскажите, как правильно это сделать? Как мне подключить git в моей папке prod.site.com?
  • Вопрос задан
  • 996 просмотров
Решения вопроса 1
@PVLTMK
Не совсем понятно что за конфиги имеете в виду, но в общем виде это выглядит примерно так:
1. Инициализировать новый git в папке prod
git init
2. Связать локальный гит репозиторий с удаленным
git remote add origin <url to remote repository>
3. Добавить .gitignore (и заполнить его как вам нужно), добавить файлы для трекинга, commit
touch .gitignore
git add .
git commit -m 'first commit prod'

4. Сделать pull всех файлов с удаленного репозитория
git pull
5. Решить все конфликты merge если такие возникли.
6. Затем можно пушить все на удаленый репозиторий
git push
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@kova1ev
Думаю, чтобы правильно сделать, нужно почитать где-то здесь: https://bitbucket.org/product/ru/features/pipelines
А если не очень правильно, то напишите скрипт какой-нибудь, который будет ваш сайт из папки Dev в папку Prod копипастить, и запускайте его, когда на прод выкатываете.
Ответ написан
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
Тщательно изучи тему CI/CD в любом поставщике гита. Это как раз и есть автоматическое развертывание после новых пушей. Придется добавить мерж-реквесты, чтобы кто-то из команды случайно не залил свои ошибки без твоего подтверждения его работы.

Если тебе лично для себя, то можешь просто использовать ветки
git checkout -b dev-zadacha1 (создает ветку (папку) и переходит на работу в ней)
git add . (добавить все измененные файлы в снимок - точнее изменения из файлов с момента прошлого снимка)
git commit -m "комментарий" (сфотографировать и добавить в папку на ТВОЕМ компьютере)
git push -u origin dev-zadacha1 (закачивает на СЕРВЕР гита изменения (по умолчанию сервер маркируется словом origin), создавая там папку и связывая твою папку и папку на гите)

теперь все последующие изменения делаются
git add .
git commit -m "комментарий"
git push

когда ты будешь уверен, что штука готова окончательно
git checkout master (отсутствует `-b master` - создавать папку master не надо - она по умолчанию есть - перейти в папку master, не пугайся что весь проект вдруг откатится к старой версии, изменения лежат в папке .git на компьютере)
git pull (скачиваем последние изменения для мастера, которые делали коллеги)
git merge dev-zadacha1 (соединить текущую папку с dev-zadacha1, путем слияния изменений построчно) - в этом месте тебе придется разобраться с конфликтами, если ты что-то делал в папке мастер с теми же самыми файлами, что и в папке dev-zadacha1.
git push -u origin master (заливаем в папку мастер на сервер и говорим гиту что дальше нужно следить за папкой мастер)
Ответ написан
Комментировать
dlnsk
@dlnsk
ПК Партнер 01.01 -> ПК Поиск -> IBM PC
В git нужно хранить конфиги по-умолчанию, а реальные конфиги, перекрывающие умолчания, не должны храниться в гит. В этом случае на dev у вас будут одни конфиги, а на prod другие и ничто не помешает вам просто сделать git pull в продакшине (продакшин продакшину рознь, естественно, и не везде можно обойтись без CI/CD).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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