Similar presentations:
Система контроля версий
1. Система контроля версий
Желтухин Вячеслав Александрович[email protected]
2. Мир без VCS
Система контроля версий VCS2
3. VCS
⚫Система управления версиями (от англ. Version Control System,VCS или Revision Control System) — программное обеспечение для
облегчения работы с изменяющейся информацией. Система
управления версиями позволяет хранить несколько версий
одного и того же документа, при необходимости возвращаться к
более ранним версиям, определять, кто и когда сделал то или
иное изменение, и многое другое
Система контроля версий VCS
3
4. Резервные копии
Система контроля версий VCS4
5. Для чего нам нужен VCS
⚫Архивация и восстановления⚫Синхронизация работы с командой
⚫Поиск “виновного”
⚫Хранения истории разработки
⚫Отмена изменений
⚫Альтернативные/экспериментальные реализации
Система контроля версий VCS
5
6. История VCS
Система контроля версий VCS6
7. История VCS
Система контроля версий VCS7
8. История GIT
Основные цели которые преследовал GIT:⚫Скорость
⚫Простота дизайна
⚫Поддержка нелинейной разработки (тысячи параллельных
веток)
⚫Полная распределенность
⚫Возможность эффективной работы с такими большими
проектами, как ядро Linux (как по скорости, так и по размеру
данных)
Система контроля версий VCS
8
9. Централизованные VS Распределенные (Децентрализованные)
Система контроля версий VCS9
10. Централизованные системы
⚫Централизованные системы контроля версий представляютсобой приложения типа клиент-сервер, когда репозиторий
проекта существует в единственном экземпляре и хранится на
сервере.
⚫Доступ к нему осуществлялся через специальное клиентское
приложение. В качестве примеров таких программных
продуктов можно привести CVS, Subversion.
Система контроля версий VCS
10
11. Централизованные системы
Система контроля версий VCS11
12. Распределенные системы
⚫Распределенные системы контроля версий позволяют хранитьрепозиторий (его копию) у каждого разработчика, работающего с
данной системой.
⚫При этом можно выделить центральный репозиторий (условно),
в который будут отправляться изменения из локальных и, с ним
же эти локальные репозитории будут синхронизироваться.
Система контроля версий VCS
12
13. Распределенные системы
Система контроля версий VCS13
14. Установка
Система контроля версий VCS14
15. Установка Git
⚫Linux: sudo apt-get install git⚫OS X: brew install git
⚫Windows: https://git-scm.com/downloads
Система контроля версий VCS
15
16. Установка Git
⚫Установка дистрибутива выполняется как и обычной программы.Необходимо указать каталог для установки и указать некоторые
параметры.
Start
Система контроля версий VCS
16
17. Установка Git
Система контроля версий VCS17
18. Установка Git
FinishСистема контроля версий VCS
18
19. Настройка Git
⚫Такими глобальными настройками являются имя пользователя и егоemail. Их можно установить следующими командами в консоли Git:
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
⚫Все параметры будут помещены в файл с настройками Git .gitconfig,
расположенным в домашнем каталоге пользователя (для Windows это
Users\<UserName>\).
Система контроля версий VCS
19
20. Настройка Git. Генерация ключей
⚫Для завершения настройки необходимо выполнить еще однообязательное действие. Это сгенерировать ключи для клиента, т.е. для
текущего компьютера.
⚫Ключи используют алгоритм RSA. Это необходимо для того, чтобы
клиент мог общаться с сервером по защищенному соединению SSH
или HTTPS.
⚫Генерацию можно выполнить несколькими способами. Самый
простой из них, это воспользоваться приложением Git Gui.
⚫ Для генерации ключа нужно выбрать пункт меню Помощь->Показать
ключ SSH.
⚫ Если ключ не сгенерирован, то доступна кнопка “Создать ключ”.
Система контроля версий VCS
20
21. Настройка Git. Генерация ключей
Система контроля версий VCS21
22. Загрузка и установка расширения Git Source Control Provider для Visual Studio
⚫Для загрузки расширения необходимо открыть настройки VisualStudio окно Расширения и обновления. В разделе расширений из
Интернет выбрать нужное разрешение и установить его. После
этого потребуется перезапуск Visual Studio.
Система контроля версий VCS
22
23. Загрузка и установка расширения Git Source Control Provider для Visual Studio
Система контроля версий VCS23
24. Настройка расширения Git Source Control Provider
⚫Для настройки расширения, необходимо открыть окно настроекVisual Studio и выбрать пункт Source Control.
Система контроля версий VCS
24
25. Настройка расширения Git Source Control Provider
⚫Далее, в настройках Source Control выбрать настройкуподключаемого модуля для Git.
Система контроля версий VCS
25
26. Настройка расширения Git Source Control Provider
⚫После того, как расширение настроено, оно создает файлы вкаталоге пользователя с документами, где размещает файлы с
настройками. Этот файл называется gitscc.config. Также, при
работе создается и файла лога для расширения gitscc.log.
Система контроля версий VCS
26
27. Настройка расширения Git Source Control Provider
Система контроля версий VCS27
28.
Система контроля версий VCS28
29. Что выбрать?
Система контроля версий VCS29
30. Регистрация на сервисе Bitbucket
⚫Для того, чтобы использовать возможности Git по полной,необходимо завести аккаунт на одном из сервисов,
предоставляющих Git на сервере для создания удаленных
репозиториев. Одними из таких популярных сервисов являются
Github и Bitbucket.
⚫Для регистрации нужно перейти на сайт https://bitbucket.org/ и
выбрать пункт Sign Up.
Система контроля версий VCS
30
31. Регистрация на сервисе Bitbucket
Регистрация насервисе бесплатна.
Для такого
аккаунта доступно
создание
неограниченного
числа
репозиториев, как
публичных, так и
приватных.
Система контроля версий VCS
31
32. Настройка аккаунта
⚫Под настройкой понимается установка значений нужныхпараметров аккаунта для его дальнейшего использования.
Одним из важнейших параметров, является добавление набора
ключей для доверенных компьютеров, с которых будут
производится обращение к сервису.
⚫Для настройки нужно перейти в раздел Management Account>SSH Keys.
⚫Там будет кнопка Add Key, после чего откроется окно, в котором
нужно будет указать название ключа и вставить сам ключ,
сгенерированный ранее.
Система контроля версий VCS
32
33. Настройка аккаунта
Система контроля версий VCS33
34. Создание удаленного репозитория на Bitbucket
⚫Для создания нового репозитория на сервисе нужно нажатькнопку Create в главном меню.
При создании
репозитория, нужно
указать его название,
тип, вид СКВ и
основной язык.
Кроме того,
можно сразу
же включить
страницы Wiki
и Issue-трекер.
Система контроля версий VCS
34
35. Создание удаленного репозитория на Bitbucket
⚫После того, как репозиторий создан, откроется окно ссодержимым репозитория.
На данной странице
указаны сведения для
начала работы с ним.
Так, здесь приведены
команды для загрузки
кода.
Система контроля версий VCS
35
36. Создание локального репозитория
⚫Открываем или создаем проект в VisualStudio. Далее, кликаем правой кнопкой мыши
по открытому решению.
⚫После создания репозитория все файлы
помечаются как новые.
⚫Так же в каталоге с проектом появится
скрытая папка .git. В ней содержатся файлы с
параметрами репозитория, включающие
хэши, сведения о текущем указателе на
коммит, история изменений, параметры
репозитория.
Система контроля версий VCS
36
37. Выполнение первого коммита
⚫После того, как инициализирован репозитория, в негоавтоматически были помещены файлы проекта. Нужно сделать
фиксацию внесенных изменений. Нужно выполнить команду в Git
Bash:
$ git commit –m “comment”
Система контроля версий VCS
37
38. Выполнение первого коммита
⚫Подтверждение измененийпроще делать из
специального окна, которое
добавляется в Visual Studio
вместе с расширением. В
нем можно просмотреть
список файлов и их статусов,
просмотреть изменения, а
также написать
комментарий и выполнить
коммит.
Система контроля версий VCS
38
39. Связывание локального репозитория с удаленным
⚫Для того, чтобы связать локальный репозиторий с локальнымнеобходимо указать в параметрах репозитория, созданного на
компьютере, удаленный адрес. Это называется remote.
⚫Для этого нужно открыть Git Bash и выполнить следующие команды:
$ git remote add origin ssh://[email protected]/user/reponame.git
$ git push -u origin –all
⚫После этого, все файлы, помещенные в репозиторий и помещенные в
коммит, будут отправлены на сервер в созданный ранее репозиторий
(адрес его указывается при создании удаленной ветки origin).
⚫Теперь команда $ git push будет отправлять данные в удаленную ветку
origin/master.
Система контроля версий VCS
39
40. Проверка
⚫Для проверки правильности настройки, необходимо проверитьрепозиторий, который был загружен на сервис. Если там успешно
показываются файлы проекта и есть сведения о коммитах, то все в
порядке.
⚫Также, можно выполнить проверку путем клонирования
существующего репозитория. Для этого нужно выбрать такой
репозиторий получить ссылку для клонирования.
⚫Например, она может иметь вид (команда):
$ git clone [email protected]:gstu1/student-lms.git
⚫Если все операции производятся нормально, это значит, что настройка
выполнена верно, Git успешно связывается с удаленным сервисом,
файлы помещаются и загружаются с него.
Система контроля версий VCS
40
41.
Система контроля версий VCS41
42. Новый словарик
Базовые термины⚫Репозиторий, сервер, клиент
⚫Рабочая копия, ревизия, коммит, описание коммита
⚫Ветки, слияния, конфликты
Система контроля версий VCS
42
43. Новый словарик
Базовые действия⚫Adding files
⚫Checkout
⚫Commit
⚫Update
⚫Revert
⚫Merge
Система контроля версий VCS
43
44. Основные команды GIT
⚫Обновляем репозиторий и рабочую копию: git pull⚫Добавляем файл в проект: git add hello.php
⚫Делаем коммит: git commit –m “описание того, что сделали”
⚫Отдаем изменения во внешний репозиторий: git push
Система контроля версий VCS
44
45. Основные команды GIT
Система контроля версий VCS45
46. GIT Ветвление
Вы решаете, что теперь вы будетезаниматься проблемой #53 из вашей
системы отслеживания ошибок. Чтобы
создать ветку и сразу переключиться на
нее, можно выполнить команду git
checkout с параметром -b
Система контроля версий VCS
46
47. GIT Ветвление
Система контроля версий VCS47
48. GIT Слияние
Система контроля версий VCS48
49. GIT Типы слияния
⚫Git merge⚫Git rebase
⚫Git push --force
Общее правило такое: если мы работаем с веткой самостоятельно
и не планируем публиковать её на сервере — то выгоднее использовать
rebase. Если же мы публикуем ветку командой push, то использовать
rebase НЕЛЬЗЯ, иначе мы автоматически инвалидируем работу коллег.
Вкратце: rebase запоминает коммиты из ветки в виде патчей,
«перематывает» текущую ветку (как будто и не было никакого branch) и
применяет патчи, оформляя их в виде коммитов. В отличие от rebase,
merge делает слияние двух веток в одну.
Система контроля версий VCS
49
50.
Система контроля версий VCS50
51. Объединение коммитов в один
⚫git rebase -i HEAD~(количество последних коммитов)ОЧЕНЬ ПЛОХО
Система контроля версий VCS
51
52. GIT Конфликты
Система контроля версий VCS52
53. Новый словарик
⚫Определение состояния файлов: git status⚫Просмотр истории: git log
⚫Обновить данные о git: git fetch
⚫Проверить ветки: git branch
Система контроля версий VCS
53
54. Сторонние программы для работы с git
⚫SourceTree (Windows, OS X)⚫GitHub (Windows, OS X)
⚫GitKraken (Linux, Windows, OS X)
⚫SmartGit (Linux, Windows, OS X)
⚫TortoiseGit (Windows)
Система контроля версий VCS
54
55. “Гигиена” разработки
⚫Чаще коммитим⚫Атомарно мы коммитить должны
⚫Подробно коммит описываем
⚫Веток не боимся мы
⚫Git push –force мы не используем
Система контроля версий VCS
55
56.
Система контроля версий VCS56
57. Задание для первой группы
Составить программу, содержащую стандартный набор функцийобработки строк.
1. Определение длинны строки, функция должна возвращать
количество символов входной строки.
2. Функция переворачивает строку.
3. Функция для проверки баланса скобок, то есть количество открытых
скобок должно совпадать с количеством закрытых, причём
необходимо отличать тип скобочек — круглые, квадратные,
фигурные. Функция возвращает значение типа int, если 0 —
баланс скобок нарушен, если 1 — баланс скобок выдержан, если -1
скобок во входной строке нет.
Система контроля версий VCS
57
58. Задание для второй группы
Дополнить программу, для первой группы.1. Функция должна возвращать номер позиции. начиная с которой подстрока
входит в строку.
2. Функция конкатенации строк, но конкатенация выполняется начиная с n-й
позиции так, что вторая строка вставляется в первую строку не удалив ни
одного из символов первой строки. Возвращаемое значение — строка,
полученная после вставки второй в первую строки. Пример: входные
данные: строка 1 — cpp.com, строка 2 — studio, номер позиции = 4
результат = cppstudio.com.
3. Функция должна скопировать часть входной строки (k символов), начиная
с позиции с номером N.
Система контроля версий VCS
58
59. Пример
Система контроля версий VCS59
60. Задание для третьей группы
⚫Нужно найти самое часто встречающееся слово в тексте. Текстдолжен содержать не более 1000 символов. Вывод должен быть в
UPPER CASE (верхний регистр).
Программа должен возвращать самое часто встречающееся слово,
например:
ВВОД: Can you can the can with can?
Вывод: CAN
Система контроля версий VCS
60
61. Пример
Система контроля версий VCS61
62. Задание для четвертой группы
Создать структуру, которая будет хранить информации о знакезодиака, с именем Znak. Структура Znak должна содержать
следующие поля:
1.name — фамилия, имя и отчество;
2.zodiac — знак зодиака;
3.bday — день рождения (массив из трёх чисел).
Система контроля версий VCS
62
63. Задание для четвертой группы
Программа, должна уметь выполнять следующие действия:● ввод с клавиатуры данных в массив book, который состоит из
восьми элементов типа Znak;
● вывод на экран информации о людях, родившихся в месяц,
значения которого введено с клавиатуры, если таких нет, выдать
на дисплей соответствующее сообщение.
Система контроля версий VCS
63
64. Пример
Система контроля версий VCS64
65. Задание для пятой группы
Разработать программу, который выполняет, указанные ниже,операции с набором строк:
● операцию задания строки, с заданным номером;
● метод, который выполняет вывод заданной строки или всех
строк на экран;
● метод конкатенации (объединения) двух строк;
● метод, который определяет наличие в наборе строк заданной
строки. Этот метод должен возвращать номер этой строки в
наборе( или -1 если она не найдена).
Система контроля версий VCS
65
66. Пример
Система контроля версий VCS66
67. Задание для шестой группы
В текстовом файле есть ведомость результатов сдачи экзаменовстуденческой группы. Ведомость содержит для каждого студента
фамилию, имя отчество и оценки по пяти предметам. Студентов в
группе не более 20 человек.
Система контроля версий VCS
67
68. Задание для шестой группы
Написать программу,информацию:
которая
предоставляет
следующую
● список студентов (ФИО);
● список студентов, которые сдали все экзамены только на 5;
● список студентов, которые имеют хотя-бы одну тройку по
экзаменам;
● список студентов, у которых есть двойки. Если студент, имеет
более чем одну двойку, он исключается из списка.
Система контроля версий VCS
68
69. Пример
Система контроля версий VCS69