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

Post on 04-Aug-2015

123 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

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

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

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

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

• SVN (Subversion)• Git• Mercurial

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

git clone git@github.com:rails/rails.git

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

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

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

git status

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

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

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

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

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

git status

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

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

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

User B: git pullUser B: git log

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

Важно:

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

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

Ветки (branches)

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

Ветки (branches)

git branchgit checkout develop

…doing some stuff…

git commitgit push

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

Ветки (branches)

git checkout mastergit merge develop

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

Ветки (branches)

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

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

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

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

• Pro Git Book

• Successful GIT Branching model

• Atomic Commits

top related