-
Notifications
You must be signed in to change notification settings - Fork 0
git howto
Статья ниже — копия моей статьи с моей работы. У меня там github нету, git есть локально. Вещи типа "собрать и отослать билд" читать как "показать игрокам что уже есть" :-)
Данный текст имеет смысл для разработчиков (включая скриптеров), тестировщиков, руководителей проекта.
Проблема: иногда нам надо ВНЕЗАПНО собрать и отослать билд, а в текущий репозиторий уже накоммитили не до конца доделанных изменений. Вариант с "не коммитить пока не доделано" — плохо, потому как (а) риск утратить сделанные изменения (б) Есть у нас типовые задачи типа "написать код"—"добавить скриптинг"—"добавить локализацию". Это делают разные люди, а сборка у них одна.
Решение: применить уже придуманный за нас умными людьми workflow, параллельно перейти на "более лучшую" систему контроля версий — Git.
ТЕМ НЕ МЕНЕЕ
Надо изучить функционал новой системы контроля версий. Если у вас даже (как у меня, например) есть свои проектики на github, это НИЧЕГО НЕ ЗНАЧИТ. Git как система совместной работы умеет и может значительно больше чем она же в режиме однопользовательского использования.
Мануалы:
- Курс молодого бойца: http://githowto.com/ru/git_how_to
- Большая (200 страниц) книга под названием Pro Git.
Английская версия для любителей оригиналов: http://git-scm.com/book/
Русская версия выполнена энтузиастами с Habrahabr, и доступна для свободного скачивания тут: http://habrahabr.ru/post/150673/ Точные ссылки PDF: https://github.com/downloads/GArik/progit/progit.ru.pdf EPUB: https://github.com/downloads/GArik/progit/progit.ru.epub MOBI: https://github.com/downloads/GArik/progit/progit.ru.mobi
Коллеги, я понимаю, что все занятые парни и "надо фигачить". Но надо начинать изучать новое, хотя бы просто потому что в мире программного обеспечения надо бежать, чтобы оставаться на одном месте. Чтобы двигаться вперёд — надо бежать ещё быстрее.
Но Git — это лишь инструмент. Инструмент распределённый, каждый сам может открыть репозиторий на своей локальной машине.
Для этого под OS Windows есть TortoiseGit: http://code.google.com/p/tortoisegit/ Его уж точно надо установить вот чем быстрее, тем лучше.
Также осмысленно понять, как работать с Git из командной строки Windows (называется msysgit. TortoiseGit его требует для своей работы). Поясню, зачем: сценарии использования Git часто идут серией консольных команд. Я почти уверен, что TortoiseGit позволяет делать всё то же самое, но заранее быть в этом уверенным не могу.
Git — это инструмент.
Как теперь чо делать.
-
В нашем Git-репозитории (см. ниже) есть постоянно две ветки: master и develop Право (моральное, github, вроде, этого делать не позволяет) добавлять что-либо в master имеют право сейчас два человека: я (dair, Владимир Лебедев-Шмидтгоф) и Леонид Царев, он же Лео. В develop могут делать push все разработчики. Если кто-то ВДРУГ не может — пишите мне, возможна ошибка администрирования.
-
Начиная новую задачу: а) Создаете новую ветку (branch), ответвляя develop. Называете ветку "feature/блаблабла" (должен быть префикс "feature/") б) Разрабатываете до победного конца, коммитите/откатываете в/из свою ветку по мере надобности — радость git в том, что commit делается локально, и только push заливает ваши изменения на сервер. в) Когда вы считаете, что закончили работу над своей задачей — делаете merge своей ветки обратно в develop.
-
Подготавливая новый release: а) Убеждаемся, что не обходимые фичи уже попали в develop (опросом разработчиков) б) Делаем ветку, называем её "release/блаблабла" (это важно — в начале имени должно быть именно "release/") WHILE(TRUE) { в) Отдаём сборку из этой ветки на тестирование IF( г) Багфиксы делаем в этой ветке } на этом этапе у нас нет замеченных багов д) Вмердживаем "release/блаблабла" в master е) Вмердживаем "release/блаблабла" в develop
ВСЁ.
Кстати, НАСТОЯТЕЛЬНО рекомендую к использованию на Windows и Mac OS X продукта Atlassian SourceTree. Доступен для бесплатного скачивания и использования (будет хотеть бесплатную регистрацию) на http://www.sourcetreeapp.com/, есть под Windows и Mac.
Он из коробки умеет то, что у них называется GitFlow (это то, что я вкратце описал выше) — там даже есть кнопка "Start New Feature"/"Finish Feature" и "Start New Release"/"Finish Release" для упрощения работы.
А ещё, в отличие от TortoiseGit, он умеет запоминать логин/пароль к серверу.