Спецкурс 2014, занятие 5 (часть 2). git, github и open source

Post on 08-Jul-2015

78 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Занятие на спецкурсе в ОмГУ, 2014 год.

TRANSCRIPT

Спецкурс ОмГУ-2014

Коллективная работа с кодом: git, Github и Open source.

Занятие 5 (часть 2)

Спецкурс ОмГУ-2014

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

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

Спецкурс ОмГУ-2014

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

Спецкурс ОмГУ-2014

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

• Git• SVN (Subversion)• Mercurial• Bazaar

Спецкурс ОмГУ-2014

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

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

Спецкурс ОмГУ-2014

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

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

Спецкурс ОмГУ-2014

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

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

Спецкурс ОмГУ-2014

Откат неудачных изменений

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

Спецкурс ОмГУ-2014

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

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

Спецкурс ОмГУ-2014

Поиск багов и виновных ;)

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

Спецкурс ОмГУ-2014

Удобные код-ревью

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

Спецкурс ОмГУ-2014

Экспериментальные изменения

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

Спецкурс ОмГУ-2014

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

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

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

Спецкурс ОмГУ-2014

Для разработчиковДля тестировщиков

Для дизайнерови даже для… заказчика:

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

Спецкурс ОмГУ-2014

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

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

Спецкурс ОмГУ-2014

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

Спецкурс ОмГУ-2014

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

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

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

Спецкурс ОмГУ-2014

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

Спецкурс ОмГУ-2014

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

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

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

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

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

Спецкурс ОмГУ-2014

Git

Git был разработан ЛинусомТорвальдсом для разработки кода ядра

Linux.

Спецкурс ОмГУ-2014

Основы Git.Хранение данных в SVN и Git.

Спецкурс ОмГУ-2014

Хранение данных в SVN и Git

Хранение данных в SVN: набор файлов и изменений, сделанных для каждого файла.

Спецкурс ОмГУ-2014

Хранение данных в SVN и Git

Хранение данных в Git: хранение слепков файловой системы (папки с проектом)

Спецкурс ОмГУ-2014

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

Спецкурс ОмГУ-2014

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

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

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

Спецкурс ОмГУ-2014

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

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

git status

Спецкурс ОмГУ-2014

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

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

git add lib/modules/my_new_file.rbgit add app/*git add .

Спецкурс ОмГУ-2014

git status

Спецкурс ОмГУ-2014

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

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

User B: git pullUser B: git log

Спецкурс ОмГУ-2014

Важно:

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

Спецкурс ОмГУ-2014

Ветки (branches)

Спецкурс ОмГУ-2014

Ветки (branches)

git branchgit checkout develop

…doing some stuff…

git commitgit push

Спецкурс ОмГУ-2014

Ветки (branches)

git checkout mastergit merge develop

Спецкурс ОмГУ-2014

Ветки (branches)

Спецкурс ОмГУ-2014

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

Спецкурс ОмГУ-2014

Open source

Спецкурс ОмГУ-2014

Open source contributions by location

http://davidfischer.github.io/gdc2/#languages/All

Спецкурс ОмГУ-2014

Плюшки: GUI клиенты для Git

SourceTree (Mac OS X 10.6+, Windows 7+)

Спецкурс ОмГУ-2014

Плюшки: Интеграция с редактором

git blame по хоткею в редакторе:

Спецкурс ОмГУ-2014

• Есть большие репозитории библиотек, например apache.org

• Есть репозитории бинарников и документации, например maven.org

Open source и Java:

Спецкурс ОмГУ-2014

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

• Pro Git Book

• Successful GIT Branching model

• Atomic Commits

Спецкурс ОмГУ-2014

Email: at@7bits.it

Skype: anna_tarasenko

Web: 7bits.ru

Вопросы?

top related