Задать вопрос
Adobe
@Adobe
php developer

Как безболезненно внедрить Git?

Всем добрый вечер!
Работаю над проектами в основном я один. Вот приходится всеми правдами и неправдами как то биться :)
Решил git внедрить в проекты. Получается вот такая рабочая структура:
53a37d3b6db94926b345c45aa5ce9f46.jpg
Т.е. разработка в основном идет на моем рабочем ПК, настроена автоматическая синхронизация с Dev. Host (для просмотре результата кода). Как сделал фичу, делается PUSH в репозиторий bitbacket. И потом, после утверждения правок можно зайти на Prod Host и сделать туда PULL.

По крайней мере я понял это должно выглядеть как то так :)

На данном этапе я работаю исключительно с Dev. Host и с него ручками все копируется на Prod Host.

Засада номер раз: вычитал во всяких умных Git work flow, что многие для фич и изменений создаются ветки develop и разработка ведется исключительно в них, периодически делаются слияния. Не понимаю, где эти ветки должны быть: только у меня на ПК или на продакшене тоже. В будет преимущество перед текущей моделью транспортировки данных. И нужна ли ветка Develop на продакшене? Я понимаю. зачем нужны ветки, я не понимаю, почему их пихают везде где попало.

Засада номер два: Мой рабочий проект (папка) лежит в дропбоксе, напрямую. И из дома так же напрямую из папки дропбокс и запускается проект. В PhpStorm. Т.е. я поработал в офисе, пришел домой и мне ваще ниче не надо делать, только IDE запустить и все. А часто IDE сама говорит мол давай перерендерю заново, там файлы поменялись.
Я так понимаю, что от дропбокса придется отказаться и дома тоже делать PULL. Поработал дома, сделал PUSH в bitbacket . И вот так туда сюда push-pull. Забыть сделать тот или другой как здрасьти ;(

Есть замечания по мыслям вот таким мыслям? :)
Спасибо.
  • Вопрос задан
  • 1917 просмотров
Подписаться 21 Оценить Комментировать
Решения вопроса 1
@FoxInSox
1. на Битбакете должны быть dev ветка, master ветка и теги релиз версий. feature/hotfix ветки по необходимости. Т.е. если фича/фикс растягивается на больше чем один день, то вечером перед уходом домой вы пушите ее в репозиторий. На следующий день если вы работаете из дома, то выкачиваете ее из репозитория. Так же если вы не придете на работу, то другой разработчик сможет продолжить вашу работу выкачав ветку из репозитория.Чтение про ветки.
2. В вашей схеме не хватает CI-сервера, и потому появляются разные костыли и вопросы по поводу веток. CI-сервер автоматически при коммите в dev ветку(закоммитчена фича/хотфикс) собирает проект, прогоняет тесты и деплоит ваш проект на dev сервер. При коммите в master ветку(закомитчен хотфикс или релиз ветки из dev) он прогоняет тесты и деплоит ваш проект на продакшн.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Alexander1705
Раз, два.
Гит - распределённая система контроля версий. А это значит, что:
не нуждается в централизованном хранилище: вся история изменения документов хранится на каждом компьютере, в локальном хранилище, и при необходимости отдельные фрагменты истории локального хранилища синхронизируются с аналогичным хранилищем на другом компьютере.
Ответ написан
mrusklon
@mrusklon
Не получается? Яростно гугли!
мне и самому стало интересна эта тема :)
по дропбоксу , по моему нет смысла от него отказываться , репозиторий по сути просто файлы , не важно где они лежат. Будет просто у вас он и дома и на работе одинаковый всегда. А пулл и пуш делать уже на битбакет
Ответ написан
Singaporian
@Singaporian
"И нужна ли ветка Develop на продакшене? Я понимаю. зачем нужны ветки"

И все же вы не до конца понимаете, зачем нужны ветки, если у вас ветка "develop".
Обычно это так делается: есть транк - с ним все понятно. Есть задача на фичу. Брэнчуемся, делаем фичу, мерджимся обратно в транк. И так на каждую фичу своя ветка. Баги правим только в ветках (иногда будет требоваться ребейз).

Деплой, однако, идет не из транка. Ведь в транке версия SNAPSHOT. А деплоить на прод нельзя такое. Как надо: брэнчуетесь от транка, убираете SNAPSHOT, прогоняете все тесты (внимание на слова FoxInSox: CI нужен), деплоите с этой ветки.

Возвращаясь к разработке, вы опять брэнчуетесь от транка для каждой фичи или комплекта фич.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы