Стажировка-2015. Разработка. Занятие 4. Системы контроля...

30
Стажировка-2015 Коллективная работа с кодом Системы контроля версий

Upload: 7bits

Post on 04-Aug-2015

122 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Коллективная работа с кодомСистемы контроля версий

Page 2: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

VCS (Version Control System) – инструмент для работы с изменяющимися данными

Система контроля версий

Page 3: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Система контроля версий

Page 4: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Cистемы контроля версий

• SVN (Subversion)• Git• Mercurial

Page 5: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Единое место хранения кода и истории

Системы контроля версийЗачем?

Page 6: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Совместная работа в команде

Системы контроля версийЗачем?

Page 7: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Доступ к любой версии проекта

Системы контроля версийЗачем?

Page 8: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Откат неудачных измененийЭкспериментальные изменения

Системы контроля версийЗачем?

Page 9: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Просмотр истории

Системы контроля версийЗачем?

Page 10: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Поиск виновных:git blame

Системы контроля версийЗачем?

Page 11: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Удобно проводить код-ревью

Системы контроля версийЗачем?

Page 12: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Генерация отчётовАвтоматизирование тестирование

Continuous DeploymentИнтеграция с сервисами

Системы контроля версийЗачем?

Page 13: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Централизованные и распределенные VCS

Системы контроля версий

Page 14: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Как работают централизованные системы контроля версий

Page 15: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

• Централизованный сервер – самое уязвимое место в системе

• Низкая скорость работы• Нет доступа к истории оффлайн• Плохо поддерживает ветвление

Недостатки (на примере SVN):

Page 16: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Как работают распределенные системы контроля версий

Page 17: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

• У каждого – полная копия репозитория• Многие команды выполняются

локально, без запроса к серверу• Скорость работы• Работа с проектом оффлайн• Можно использовать несколько

удалённых репозиториев в одном проекте.

• Удобная работа с ветками

Преимущества распределённых систем контроля версий

Page 18: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Базовые команды GitGit initgit clonegit addgit commitgit statusgit pushgit pullgit checkoutgit branchgit loggit diff

Page 19: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Базовые команды Git

Копирование репозитория:

git clone [email protected]:rails/rails.git

Page 20: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Базовые команды Git

Текущее состояние вашей рабочей копии:

git status

Page 21: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Базовые команды Git

Добавить изменения в VCS:

git add lib/modules/my_new_file.rbgit add folder_namegit add .

Page 22: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

git status

Page 23: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Базовые команды Git

User A: git commit –m ‘Add cool module #10’User A: git push

User B: git pullUser B: git log

Page 24: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Важно:

• Коммит сообщения – на английском• Все изменения локальны (до git push)• Почти всё можно откатить обратно• Используйте git версии 2.0 и выше• Конфликты в git – нормальная ситуация

Page 25: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Ветки (branches)

Page 26: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Ветки (branches)

git branchgit checkout develop

…doing some stuff…

git commitgit push

Page 27: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Ветки (branches)

git checkout mastergit merge develop

Page 28: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Ветки (branches)

Page 29: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Сервисы для хостинга git-репозиториев

Page 30: Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Стажировка-2015

Что почитать?

• Pro Git Book

• Successful GIT Branching model

• Atomic Commits