Спецкурс 2014, занятие 5 (часть 2). git, github и open source
DESCRIPTION
Занятие на спецкурсе в ОмГУ, 2014 год.TRANSCRIPT
![Page 1: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/1.jpg)
Спецкурс ОмГУ-2014
Коллективная работа с кодом: git, Github и Open source.
Занятие 5 (часть 2)
![Page 2: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/2.jpg)
Спецкурс ОмГУ-2014
VCS (Version Control System) – инструмент для работы с изменяющимися данными
Система контроля версий
![Page 3: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/3.jpg)
Спецкурс ОмГУ-2014
Система контроля версий
![Page 4: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/4.jpg)
Спецкурс ОмГУ-2014
Cистемы контроля версий
• Git• SVN (Subversion)• Mercurial• Bazaar
![Page 5: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/5.jpg)
Спецкурс ОмГУ-2014
Единое место хранения истории
Системы контроля версийЗачем?
![Page 6: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/6.jpg)
Спецкурс ОмГУ-2014
Совместная работа в команде
Системы контроля версийЗачем?
![Page 7: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/7.jpg)
Спецкурс ОмГУ-2014
Доступ к любой версии проекта
Системы контроля версийЗачем?
![Page 8: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/8.jpg)
Спецкурс ОмГУ-2014
Откат неудачных изменений
Системы контроля версийЗачем?
![Page 9: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/9.jpg)
Спецкурс ОмГУ-2014
Просмотр истории
Системы контроля версийЗачем?
![Page 10: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/10.jpg)
Спецкурс ОмГУ-2014
Поиск багов и виновных ;)
Системы контроля версийЗачем?
![Page 11: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/11.jpg)
Спецкурс ОмГУ-2014
Удобные код-ревью
Системы контроля версийЗачем?
![Page 12: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/12.jpg)
Спецкурс ОмГУ-2014
Экспериментальные изменения
Системы контроля версийЗачем?
![Page 13: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/13.jpg)
Спецкурс ОмГУ-2014
Генерация отчётовАвтоматизирование тестирование
Continuous DeploymentИнтеграция с сервисами
Системы контроля версийЗачем?
![Page 14: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/14.jpg)
Спецкурс ОмГУ-2014
Для разработчиковДля тестировщиков
Для дизайнерови даже для… заказчика:
Системы контроля версийДля кого?
![Page 15: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/15.jpg)
Спецкурс ОмГУ-2014
Централизованные и распределенные VCS
Системы контроля версий
![Page 16: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/16.jpg)
Спецкурс ОмГУ-2014
Как работают централизованные системы контроля версий
![Page 17: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/17.jpg)
Спецкурс ОмГУ-2014
• Централизованный сервер – самое уязвимое место в системе
• Низкая скорость работы• Нет доступа к истории оффлайн• Плохо поддерживает ветвление
Недостатки (на примере SVN):
![Page 18: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/18.jpg)
Спецкурс ОмГУ-2014
Как работают распределенные системы контроля версий
![Page 19: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/19.jpg)
Спецкурс ОмГУ-2014
• У каждого – полная копия репозитория• Многие команды выполняются
локально, без запроса к серверу• Скорость работы• Работа с проектом оффлайн• Можно использовать несколько
удалённых репозиториев в одном проекте.
• Удобная работа с ветками
Преимущества распределённых систем контроля версий
![Page 20: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/20.jpg)
Спецкурс ОмГУ-2014
Git
Git был разработан ЛинусомТорвальдсом для разработки кода ядра
Linux.
![Page 21: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/21.jpg)
Спецкурс ОмГУ-2014
Основы Git.Хранение данных в SVN и Git.
![Page 22: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/22.jpg)
Спецкурс ОмГУ-2014
Хранение данных в SVN и Git
Хранение данных в SVN: набор файлов и изменений, сделанных для каждого файла.
![Page 23: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/23.jpg)
Спецкурс ОмГУ-2014
Хранение данных в SVN и Git
Хранение данных в Git: хранение слепков файловой системы (папки с проектом)
![Page 24: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/24.jpg)
Спецкурс ОмГУ-2014
Базовые команды Gitgit clonegit addgit commitgit statusgit fetchgit pushgit pullgit checkoutgit branchgit loggit diff
![Page 25: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/25.jpg)
Спецкурс ОмГУ-2014
Базовые команды Git
Копирование репозитория:
git clone [email protected]:rails/rails.git
![Page 26: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/26.jpg)
Спецкурс ОмГУ-2014
Базовые команды Git
Текущее состояние вашей рабочей копии:
git status
![Page 27: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/27.jpg)
Спецкурс ОмГУ-2014
Базовые команды Git
Добавить изменения в VCS:
git add lib/modules/my_new_file.rbgit add app/*git add .
![Page 28: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/28.jpg)
Спецкурс ОмГУ-2014
git status
![Page 29: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/29.jpg)
Спецкурс ОмГУ-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](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/30.jpg)
Спецкурс ОмГУ-2014
Важно:
• Коммит сообщения – на английском• Конфликты в GIT – нормальная ситуация• Все изменения – локальны (до git push)• Почти все можно откатить обратно• Используйте git версии 2.0
![Page 31: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/31.jpg)
Спецкурс ОмГУ-2014
Ветки (branches)
![Page 32: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/32.jpg)
Спецкурс ОмГУ-2014
Ветки (branches)
git branchgit checkout develop
…doing some stuff…
git commitgit push
![Page 33: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/33.jpg)
Спецкурс ОмГУ-2014
Ветки (branches)
git checkout mastergit merge develop
![Page 34: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/34.jpg)
Спецкурс ОмГУ-2014
Ветки (branches)
![Page 35: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/35.jpg)
Спецкурс ОмГУ-2014
Сервисы для хостинга git-репозиториев
![Page 36: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/36.jpg)
Спецкурс ОмГУ-2014
Open source
![Page 37: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/37.jpg)
Спецкурс ОмГУ-2014
Open source contributions by location
http://davidfischer.github.io/gdc2/#languages/All
![Page 38: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/38.jpg)
Спецкурс ОмГУ-2014
Плюшки: GUI клиенты для Git
SourceTree (Mac OS X 10.6+, Windows 7+)
![Page 39: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/39.jpg)
Спецкурс ОмГУ-2014
Плюшки: Интеграция с редактором
git blame по хоткею в редакторе:
![Page 40: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/40.jpg)
Спецкурс ОмГУ-2014
• Есть большие репозитории библиотек, например apache.org
• Есть репозитории бинарников и документации, например maven.org
Open source и Java:
![Page 41: Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source](https://reader034.vdocuments.site/reader034/viewer/2022042715/559cb89a1a28abe9558b463e/html5/thumbnails/41.jpg)
Спецкурс ОмГУ-2014
Что почитать?
• Pro Git Book
• Successful GIT Branching model
• Atomic Commits