Top Banner
Стажировка-2014 Коллективная работа с кодом: git, Github и Open source. Занятие 4
40

Стажировка 2014, занятие 4. Git, Github и Open source.

Jun 15, 2015

Download

Education

7bits
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

Занятие 4

Page 2: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 3: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

Page 4: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

• Git• SVN (Subversion)• Mercurial• Bazaar

Page 5: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 6: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 7: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 8: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 9: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 10: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 11: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 12: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 13: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

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

Page 14: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

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

Page 15: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 16: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

Page 17: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

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

Page 18: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

Page 19: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

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

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

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

Page 20: Стажировка 2014, занятие 4. Git, Github и Open source.

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

Git

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

Linux.

Page 21: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

Page 22: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 23: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 24: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

Page 25: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

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

Page 26: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

git status

Page 27: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

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

Page 28: Стажировка 2014, занятие 4. Git, Github и Open source.

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

git status

Page 29: Стажировка 2014, занятие 4. 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, занятие 4. Git, Github и Open source.

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

Важно:

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

Page 31: Стажировка 2014, занятие 4. Git, Github и Open source.

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

Ветки (branches)

Page 32: Стажировка 2014, занятие 4. Git, Github и Open source.

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

Ветки (branches)

git branchgit checkout develop

…doing some stuff…

git commitgit push

Page 33: Стажировка 2014, занятие 4. Git, Github и Open source.

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

Ветки (branches)

git checkout mastergit merge develop

Page 34: Стажировка 2014, занятие 4. Git, Github и Open source.

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

Ветки (branches)

Page 35: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

Page 36: Стажировка 2014, занятие 4. Git, Github и Open source.

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

Open source

Page 37: Стажировка 2014, занятие 4. Git, Github и Open source.

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

Open source contributions by location

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

Page 38: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 39: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

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

Page 40: Стажировка 2014, занятие 4. Git, Github и Open source.

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

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

• Pro Git Book

• Successful GIT Branching model

• Atomic Commits