ݺߣ

ݺߣShare a Scribd company logo
Стажировка-2014
Коллективная работа с кодом:
git, Github и Open source.
Занятие 4
Стажировка-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
Базовые команды Git
git clone
git add
git commit
git status
git fetch
git push
git pull
git checkout
git branch
git log
git 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.rb
git 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 pull
User B: git log
Стажировка-2014
Важно:
• Коммит сообщения – на английском
• Конфликты в GIT – нормальная ситуация
• Все изменения – локальны (до git push)
• Почти все можно откатить обратно
• Используйте git версии 2.0
Стажировка-2014
Ветки (branches)
Стажировка-2014
Ветки (branches)
git branch
git checkout develop
…doing some stuff…
git commit
git push
Стажировка-2014
Ветки (branches)
git checkout master
git 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
Что почитать?
• Pro Git Book
• Successful GIT Branching model
• Atomic Commits

More Related Content

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