Система контроля версий
Мир без VCS
VCS
Резервные копии
Для чего нам нужен VCS
История VCS
История VCS
История GIT
Централизованные VS Распределенные (Децентрализованные)
Централизованные системы
Централизованные системы
Распределенные системы
Распределенные системы
Установка
Установка Git
Установка Git
Установка Git
Установка Git
Настройка Git
Настройка Git. Генерация ключей
Настройка Git. Генерация ключей
Загрузка и установка расширения Git Source Control Provider для Visual Studio
Загрузка и установка расширения Git Source Control Provider для Visual Studio
Настройка расширения Git Source Control Provider
Настройка расширения Git Source Control Provider
Настройка расширения Git Source Control Provider
Настройка расширения Git Source Control Provider
Что выбрать?
Регистрация на сервисе Bitbucket
Регистрация на сервисе Bitbucket
Настройка аккаунта
Настройка аккаунта
Создание удаленного репозитория на Bitbucket
Создание удаленного репозитория на Bitbucket
Создание локального репозитория
Выполнение первого коммита
Выполнение первого коммита
Связывание локального репозитория с удаленным
Проверка
Новый словарик
Новый словарик
Основные команды GIT
Основные команды GIT
GIT Ветвление
GIT Ветвление
GIT Слияние
GIT Типы слияния
Объединение коммитов в один
GIT Конфликты
Новый словарик
Сторонние программы для работы с git
“Гигиена” разработки
Задание для первой группы
Задание для второй группы
Пример
Задание для третьей группы
Пример
Задание для четвертой группы
Задание для четвертой группы
Пример
Задание для пятой группы
Пример
Задание для шестой группы
Задание для шестой группы
Пример

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

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

Желтухин Вячеслав Александрович
[email protected]

2. Мир без VCS

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

3. VCS

⚫Система управления версиями (от англ. Version Control System,
VCS или Revision Control System) — программное обеспечение для
облегчения работы с изменяющейся информацией. Система
управления версиями позволяет хранить несколько версий
одного и того же документа, при необходимости возвращаться к
более ранним версиям, определять, кто и когда сделал то или
иное изменение, и многое другое
Система контроля версий VCS
3

4. Резервные копии

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

5. Для чего нам нужен VCS

⚫Архивация и восстановления
⚫Синхронизация работы с командой
⚫Поиск “виновного”
⚫Хранения истории разработки
⚫Отмена изменений
⚫Альтернативные/экспериментальные реализации
Система контроля версий VCS
5

6. История VCS

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

7. История VCS

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

8. История GIT

Основные цели которые преследовал GIT:
⚫Скорость
⚫Простота дизайна
⚫Поддержка нелинейной разработки (тысячи параллельных
веток)
⚫Полная распределенность
⚫Возможность эффективной работы с такими большими
проектами, как ядро Linux (как по скорости, так и по размеру
данных)
Система контроля версий VCS
8

9. Централизованные VS Распределенные (Децентрализованные)

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

10. Централизованные системы

⚫Централизованные системы контроля версий представляют
собой приложения типа клиент-сервер, когда репозиторий
проекта существует в единственном экземпляре и хранится на
сервере.
⚫Доступ к нему осуществлялся через специальное клиентское
приложение. В качестве примеров таких программных
продуктов можно привести CVS, Subversion.
Система контроля версий VCS
10

11. Централизованные системы

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

12. Распределенные системы

⚫Распределенные системы контроля версий позволяют хранить
репозиторий (его копию) у каждого разработчика, работающего с
данной системой.
⚫При этом можно выделить центральный репозиторий (условно),
в который будут отправляться изменения из локальных и, с ним
же эти локальные репозитории будут синхронизироваться.
Система контроля версий VCS
12

13. Распределенные системы

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

14. Установка

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

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

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

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. Генерация ключей

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

22. Загрузка и установка расширения Git Source Control Provider для Visual Studio

⚫Для загрузки расширения необходимо открыть настройки Visual
Studio окно Расширения и обновления. В разделе расширений из
Интернет выбрать нужное разрешение и установить его. После
этого потребуется перезапуск Visual Studio.
Система контроля версий VCS
22

23. Загрузка и установка расширения Git Source Control Provider для Visual Studio

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

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

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

28.

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

29. Что выбрать?

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

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. Настройка аккаунта

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

34. Создание удаленного репозитория на Bitbucket

⚫Для создания нового репозитория на сервисе нужно нажать
кнопку Create в главном меню.
При создании
репозитория, нужно
указать его название,
тип, вид СКВ и
основной язык.
Кроме того,
можно сразу
же включить
страницы Wiki
и Issue-трекер.
Система контроля версий VCS
34

35. Создание удаленного репозитория на Bitbucket

⚫После того, как репозиторий создан, откроется окно с
содержимым репозитория.
На данной странице
указаны сведения для
начала работы с ним.
Так, здесь приведены
команды для загрузки
кода.
Система контроля версий VCS
35

36. Создание локального репозитория

⚫Открываем или создаем проект в Visual
Studio. Далее, кликаем правой кнопкой мыши
по открытому решению.
⚫После создания репозитория все файлы
помечаются как новые.
⚫Так же в каталоге с проектом появится
скрытая папка .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.

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

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

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

46. GIT Ветвление

Вы решаете, что теперь вы будете
заниматься проблемой #53 из вашей
системы отслеживания ошибок. Чтобы
создать ветку и сразу переключиться на
нее, можно выполнить команду git
checkout с параметром -b
Система контроля версий VCS
46

47. GIT Ветвление

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

48. GIT Слияние

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

49. GIT Типы слияния

⚫Git merge
⚫Git rebase
⚫Git push --force
Общее правило такое: если мы работаем с веткой самостоятельно
и не планируем публиковать её на сервере — то выгоднее использовать
rebase. Если же мы публикуем ветку командой push, то использовать
rebase НЕЛЬЗЯ, иначе мы автоматически инвалидируем работу коллег.
Вкратце: rebase запоминает коммиты из ветки в виде патчей,
«перематывает» текущую ветку (как будто и не было никакого branch) и
применяет патчи, оформляя их в виде коммитов. В отличие от rebase,
merge делает слияние двух веток в одну.
Система контроля версий VCS
49

50.

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

51. Объединение коммитов в один

⚫git rebase -i HEAD~(количество последних коммитов)
ОЧЕНЬ ПЛОХО
Система контроля версий VCS
51

52. GIT Конфликты

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

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.

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

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. Пример

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

60. Задание для третьей группы

⚫Нужно найти самое часто встречающееся слово в тексте. Текст
должен содержать не более 1000 символов. Вывод должен быть в
UPPER CASE (верхний регистр).
Программа должен возвращать самое часто встречающееся слово,
например:
ВВОД: Can you can the can with can?
Вывод: CAN
Система контроля версий VCS
60

61. Пример

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

62. Задание для четвертой группы

Создать структуру, которая будет хранить информации о знаке
зодиака, с именем Znak. Структура Znak должна содержать
следующие поля:
1.name — фамилия, имя и отчество;
2.zodiac — знак зодиака;
3.bday — день рождения (массив из трёх чисел).
Система контроля версий VCS
62

63. Задание для четвертой группы

Программа, должна уметь выполнять следующие действия:
● ввод с клавиатуры данных в массив book, который состоит из
восьми элементов типа Znak;
● вывод на экран информации о людях, родившихся в месяц,
значения которого введено с клавиатуры, если таких нет, выдать
на дисплей соответствующее сообщение.
Система контроля версий VCS
63

64. Пример

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

65. Задание для пятой группы

Разработать программу, который выполняет, указанные ниже,
операции с набором строк:
● операцию задания строки, с заданным номером;
● метод, который выполняет вывод заданной строки или всех
строк на экран;
● метод конкатенации (объединения) двух строк;
● метод, который определяет наличие в наборе строк заданной
строки. Этот метод должен возвращать номер этой строки в
наборе( или -1 если она не найдена).
Система контроля версий VCS
65

66. Пример

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

67. Задание для шестой группы

В текстовом файле есть ведомость результатов сдачи экзаменов
студенческой группы. Ведомость содержит для каждого студента
фамилию, имя отчество и оценки по пяти предметам. Студентов в
группе не более 20 человек.
Система контроля версий VCS
67

68. Задание для шестой группы

Написать программу,
информацию:
которая
предоставляет
следующую
● список студентов (ФИО);
● список студентов, которые сдали все экзамены только на 5;
● список студентов, которые имеют хотя-бы одну тройку по
экзаменам;
● список студентов, у которых есть двойки. Если студент, имеет
более чем одну двойку, он исключается из списка.
Система контроля версий VCS
68

69. Пример

Система контроля версий VCS
69
English     Русский Правила