Разработка проекта вдвоем

Рейтинг: 1Ответов: 1Опубликовано: 24.10.2014

Добрый день.
Раньше я работал один с github. Но теперь появилась потребность вместе с приятелем работать над проектом. Не могу понять, ведь если приятель сделал push, то я уже не могу сделать push, пока сам не загружу обновления. Возможно, придется создать ветви, потом межрить их в конце дня, перед работой pull, потом опять мержить, допонимаю.

Подскажите, пожалуйста, как в таких случаях организовывается работа?

1) Т.е. в начале работы делаю так:

git init  
git clone url

Скачал проект.

2) Сделал изменения и:

git add. 
git commit -m "comment"
git push remote feature/create-feedback-form

Отправили в репозиторий.

3) Кто-то мержит ветки разработчиков вечером.

4) Утром каждый разработчик делает pull в свою ветку и работает. Как закончит работать, производит второй этап и т.д.

Так?

Ответы

▲ 2

Классическая схема удаленного репозитория:

  • master - здесь валяются исключительно рабочие версии проекта.
  • dev - относительно стабильная ветка, в которую закидываются все законченные обновления
  • release-XXX или rc (часто его роль выполняет dev) - ветка подготовки к следующему релизу. В большинстве случаев этой ветки не существует, но мне она симпатична тем, что в ней можно спокойно собирать следующий релиз, в то время как в dev можно пихать обновления, заглядывая на пару milestone'в вперед. Впрочем, в этом случае поддержка всего флоу становится на порядок сложнее. Git-flow рекомендует наличие релизных веток.
  • другие публичные ветки, специфичные для каждого проекта

Все законченные версии проекта обязательно тегируются.

Классическая схема работы с локальным репозиторием (git-flow):

  • Каждый чих, каждый таск оформляется в виде ветки feature/XXX, отпочковавшейся от dev. Это позволяет в любой момент вернуться к просто dev или master, чтобы закрыть баг исходя из текущего состоянии проекта и не пихать туда незаконченные обновления.
  • Хотфиксы оформляются как hotfix/XXX и по завершении мержатся и в dev, и в master
  • При необходимости эти ветки публикуются на сервере, а по завершению удаляются.

Такой подход позволяет более атомарно подходить к реализуемым таскам, заставляет дева заниматься разрешением конфликта до того, как он начал пушить в репу и уменьшает количество пушей.