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

42
Спецкурс ОмГУ-2014 Коллективная работа с кодом: git, Github и Open source. Занятие 5 (часть 2)

Upload: 7bits

Post on 08-Jul-2015

78 views

Category:

Education


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 2: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 3: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

Page 4: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

• Git• SVN (Subversion)• Mercurial• Bazaar

Page 5: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 6: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 7: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 8: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 9: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 10: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 11: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 12: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 13: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

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

Page 14: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

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

Page 15: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 16: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

Page 17: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

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

Page 18: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

Page 19: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

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

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

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

Page 20: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

Git

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

Linux.

Page 21: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

Page 22: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 23: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 24: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

Page 25: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

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

Page 26: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

git status

Page 27: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

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

Page 28: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

git status

Page 29: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

User B: git pullUser B: git log

Page 30: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

Важно:

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

Page 31: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

Ветки (branches)

Page 32: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

Ветки (branches)

git branchgit checkout develop

…doing some stuff…

git commitgit push

Page 33: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

Ветки (branches)

git checkout mastergit merge develop

Page 34: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

Ветки (branches)

Page 35: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

Page 36: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

Open source

Page 37: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

Open source contributions by location

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

Page 38: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 39: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Page 40: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

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

Open source и Java:

Page 41: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

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

• Pro Git Book

• Successful GIT Branching model

• Atomic Commits

Page 42: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source

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

Email: [email protected]

Skype: anna_tarasenko

Web: 7bits.ru

Вопросы?