Задать вопрос

Как вы используете Git во front-end?

Собираюсь делать front-end на основе Gulp + tars (Пока я - единственный человек).
Как вы организовали свой git-workflow, что добавили в .gitignore, какая структура веток, как часто делаете коммиты и тд?

Что я планирую:
  • Будет главная ветка master
  • Для каждой страницы (index, about, contact и проч.) буду создавать по ветке.
  • Также для каждой такой ветке будет еще одна - bugs, на которую я буду переключаться если будут скидывать какие-то баги по странице.
  • В конце все сливать в master.


В .gitignore добавлю все, кроме папки source (в которой буду работать).

С одной стороны мне кажется это незамысловатой структурой, но удобной, а с другой - чувство, что я не учел еще много вещей
  • Вопрос задан
  • 1547 просмотров
Подписаться 4 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 1
@fetis26
Ну, за фронтенд!
Какая-то замороченная, если не сказать неправильная структура.
В общем случае вам пока хватит 2 веток: master где лежит стабильный код и develop для разработки.
В игноре обычно лежат node_modules и любые генерируемые файлы.
Частота коммитов на ваш вкус. Обычно в него стараются положить какую-то законченную работу. Чем коммит меньше по изменения, тем легче отслеживать изменения в истории.

Я так понимаю никакой системы ведения задач нет?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
romy4
@romy4
Exception handler
> Как вы используете Git во front-end?
да

> Для каждой страницы (index, about, contact и проч.) буду создавать по ветке.
безумие)

вы задолбаетесь с мерджами
одна задача — одна ветка. потом сразу мердж в мастер.
Ответ написан
SuccessVM
@SuccessVM
Программирование - творчество
В основу системы контроля версий Git был заложен принцип «веток». Где каждая ветка подразумевает собой либо новую функциональность, либо исправление предыдущей функциональности, при этом сами ресурсы/файлы повторно не копируются, как при том же svn. Отсюда вывод, что новая ветка – это изменение как одного какого-либо файла, так и совокупность изменений, в результате которых будет реализована или исправлена какая-либо функциональность конечного продукта. Основное правило: всё, что попадает в master, должно работать и собираться без ошибок. Из основного правила вытекает второе правило, другие ветки необходимо создавать только из ветки master.

В .gitignore ты добавляешь любые файлы, которые необходимо игнорировать – это в основном исполняемые файлы или библиотеки (.exe, .dll и т.д.), в случае с компилируемыми языками программирования или например сторонние библиотеки, например тот же Gulp или Grunt, в данном случае нет смысла отслеживать данные библиотеки, т.к. этим занимаются другие разработчики. В моей практике в систему контроля версий попадали файлы с ресурсами (форматы Photoshop, Flash, Illustrator и т.д.), но лучше разбить на разные проекты и код не смешивать со статикой.

Существуют готовые подходы к разработке с использованием систем контроля версий на основе Git. Ознакомься с GitFlow:

782a1be3.png

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

Полезные статьи:

Comparing Workflows - кратко и понятно описаны разные подходы к разработке с использованием Git, в том числе и GitFlow.

Удачная модель ветвления для Git – перевод одноимённой статьи о подходе GitFlow.

Understanding the GitHub Flow – ещё один набор привил особенно для любителей GitHub.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽