Skip to content
This repository was archived by the owner on Apr 19, 2021. It is now read-only.

git howto

dair edited this page Sep 3, 2014 · 1 revision

Статья ниже — копия моей статьи с моей работы. У меня там github нету, git есть локально. Вещи типа "собрать и отослать билд" читать как "показать игрокам что уже есть" :-)

Использование Git

Данный текст имеет смысл для разработчиков (включая скриптеров), тестировщиков, руководителей проекта.

Проблема: иногда нам надо ВНЕЗАПНО собрать и отослать билд, а в текущий репозиторий уже накоммитили не до конца доделанных изменений. Вариант с "не коммитить пока не доделано" — плохо, потому как (а) риск утратить сделанные изменения (б) Есть у нас типовые задачи типа "написать код"—"добавить скриптинг"—"добавить локализацию". Это делают разные люди, а сборка у них одна.

Решение: применить уже придуманный за нас умными людьми workflow, параллельно перейти на "более лучшую" систему контроля версий — Git.

ТЕМ НЕ МЕНЕЕ

Надо изучить функционал новой системы контроля версий. Если у вас даже (как у меня, например) есть свои проектики на github, это НИЧЕГО НЕ ЗНАЧИТ. Git как система совместной работы умеет и может значительно больше чем она же в режиме однопользовательского использования.

Мануалы:

  1. Курс молодого бойца: http://githowto.com/ru/git_how_to
  2. Большая (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 позволяет делать всё то же самое, но заранее быть в этом уверенным не могу.

SourceTree и git-flow

Git — это инструмент.

Как теперь чо делать.

  1. В нашем Git-репозитории (см. ниже) есть постоянно две ветки: master и develop Право (моральное, github, вроде, этого делать не позволяет) добавлять что-либо в master имеют право сейчас два человека: я (dair, Владимир Лебедев-Шмидтгоф) и Леонид Царев, он же Лео. В develop могут делать push все разработчики. Если кто-то ВДРУГ не может — пишите мне, возможна ошибка администрирования.

  2. Начиная новую задачу: а) Создаете новую ветку (branch), ответвляя develop. Называете ветку "feature/блаблабла" (должен быть префикс "feature/") б) Разрабатываете до победного конца, коммитите/откатываете в/из свою ветку по мере надобности — радость git в том, что commit делается локально, и только push заливает ваши изменения на сервер. в) Когда вы считаете, что закончили работу над своей задачей — делаете merge своей ветки обратно в develop.

  3. Подготавливая новый 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, он умеет запоминать логин/пароль к серверу.

Clone this wiki locally