Инструментальные средства управления версиями — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Инструментальные средства управления версиями

2017-10-16 751
Инструментальные средства управления версиями 0.00 из 5.00 0 оценок
Заказать работу

Инструментальные средства управления версиями

 

Учебно-методические материалы «Инструментальные средства управления версиями» представляют собой методические указания к лабораторной работе по дисциплинам «Технологии разработки программного обеспечения» (по направлению магистерской подготовки) и «Технологии проектирования» (по направлению инженерной подготовки).

Цель работы:

Изучить базовые возможности систем управления версиями с применением CASE средств.

В материалах рассмотрены принципы управления версиями. Приведены инструкции по работе с версиями программ в среде управления версиями Git. Рассмотрены примеры использования указанных средств. В заключительной части методических указаний приведены контрольные вопросы, список рекомендуемой литературы и пример задания.

Ознакомившись с методическими указаниями и разобрав приведенные в нем примеры, студент может получить у преподавателя свой вариант задания и приступить к его выполнению.

 


Оглавление

Теоретическая часть................................................................................................................................. 2

Руководство по системе управления версиями - Git.................................................................. 2

Последовательность работ с локальным репозиторием............................................................. 3

Создание хранилища (GIT GUI)................................................................................................... 3

Фиксация изменений (commiting)................................................................................................ 5

Ветвление (branching).................................................................................................................... 8

Слияние (merging)........................................................................................................................ 11

Просмотр истории........................................................................................................................ 13

Отмена изменений (revert или reset).......................................................................................... 15

Публикация изменений (pushing) на удалённом сервере........................................................ 16

Получение изменений (pulling) с удалённого сервера............................................................. 17

Последовательность работ с удаленным репозиторием.......................................................... 20

Задание к выполнению......................................................................................................................... 22

Контрольные вопросы.......................................................................................................................... 23

Источники.............................................................................................................................................. 23

 

 

Теоретическая часть

Руководство по системе управления версиями - Git

Для начала, скачайте msysgit (инсталляционный пакет http://git-scm.com/download/win) и запустить его. Все настройки в инсталляторе оставляем по умолчанию, кроме представленной ниже.

Не выставляйте её в самое нижнее положение!

При прохождении шагов установочной программы, вы можете захотеть отметить опцию интеграции с Windows Explorer, когда вы совершаете правый щелчок мыши на папке.

Продолжите нажатием Next пока установка не завершится.

Теперь осталось установить Tortoise GIT. Этот пункт не является необходимым, но Tortoise GIT сильно облегчает управление системой контроля версий GIT на платформе ОС Windows.

Скачиваем Tortoise Git http://code.google.com/p/tortoisegit/wiki/Download. Инсталлируем Tortoise Git, оставив все параметры по умолчанию.

Ветвление (branching)

Теперь, давайте предположим что мы хотим начать добавлять новые возможности в нашу следующую большую версию программы. Но мы так же хотим сохранить стабильную версию в которой исправлять ошибки. Что бы сделать это мы создадим ветку (branch) для наших новый разработок. Что бы создать новую ветку в git gui выберете Branch → Create (Ветвь → Создать). Большая возможность какую я хочу добавить это возможность спросить пользователя его фамилию, поэтому я назову ветку lastname. Опции по умолчанию подходят без изменений, так что просто введите имя и щёлкните Create.

Теперь когда я в lastname ветке, я могу делать мои новые модификации:

#include <stdio.h>#include <string.h> int main(int argc, char **argv){ char first[255], last[255]; printf("Enter your first name: "); fgets(first, 255, stdin); first[strlen(first)-1] = '\0'; /* remove the newline at the end */ printf("Now enter your last name: "); gets(last); /* buffer overflow? what's that? */ printf("Hello %s %s!\n", first, last); return 0;}

Теперь я могу зафиксировать изменения. Замете что я фиксирую изменения используя другое имя. Мы рассмотрим это позже. Обычно вы всегда будете использовать одно и тоже имя для фиксаций.

Между тем, пользователь проинформировал нас что не показ запятой после прямого обращения к кому-то это серьёзная ошибка. Что бы исправить её в нашей стабильной ветке, вы сначала должны переключится назад на неё. Это достигается используя Branch → Checkout (Ветвь → Перейти).

Теперь мы можем исправить нашу большую ошибку.

Если мы выберем Repository → Visualize All Branch History (Репозиторий → Показать историю всех ветвей), мы увидим как складывается наша история.

Слияние (merging)

После напряжённой работы мы решили что наша lastname ветка достаточно стабильна, что бы влить её в master ветку. Что бы выполнить слияние, используйте Merge → Local Merge (Слияние → Локальное слияние).

Так как две разных фиксации делали два разных изменения на одной и той же линии, происходит конфликт (conflict).

Конфликт может быть разрешён используя любой текстовый редактор (оставляете в тексте только нужный вариант).

После разрешения конфликта, подготовьте изменения щёлкнув на иконке файла и зафиксируйте слияние щёлкнув по Commit кнопке: в редакторе внести изменения в файл и сохранить его - Перечитать — Подготовить - Сохранить.

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

Файл main.c становится немного большим, поэтому я решил вынести код, спрашивающий имя пользователя в отдельную функцию. Пока я это делал, я решил вынести функцию в отдельный файл. Хранилище теперь содержит файлы main.c, askname.c, и askname.h.

/* main.c */#include <stdio.h> #include "askname.h" int main(int argc, char **argv){ char first[255], last[255]; askname(first, last); printf("Hello, %s %s!\n", first, last); return 0;} /* askname.c */#include <stdio.h>#include <string.h> void askname(char *first, char *last){ printf("Enter your first name: "); fgets(first, 255, stdin); first[strlen(first)-1] = '\0'; /* remove the newline at the end */ printf("Now enter your last name: "); gets(last); /* buffer overflow? what's that? */} /* askname.h */void askname(char *first, char *last); Файлы создают в редакторе. Затем перечитать репозиторий, подготовить все и сохранить.

История хранилища может быть просмотрена и изучена выбрав Repository → Visualize All Branch History. На следующем скриншоте я пытаюсь найти в какой фиксации была добавлена last переменная, ища все фиксации в которых было добавлено или убрано слово last.

Фиксации, которые подходят под условия поиска отмечены жирным шрифтом, что бы быстро и легко обнаружить нужную фиксацию. Можно посмотреть старую и новую версии. Цветом выделены изменения.

Через пару дней, кто-то просматривая наш код увидел что gets функция может вызвать переполнение буфера. Будучи любителем показывать пальцем, этот человек решает запустить git blame что бы увидеть кто последний раз редактировал эту линию кода. Проблема в том что Боб, тот кто зафиксировал эту линию в хранилище, а я последний кто трогал её когда я переместил строку в другой файл. Очевидно, я не виноват (конечно же). Но так ли умен git что бы обнаружить это? Да, это так.

Что бы запустить blame, выберете Repository → Browse master's Files (Репозиторий → Показать файлы ветви master). Из дерева, которое появится, дважды щёлкните на файле с интересующей строкой, который в данном случае askname.c. Наведённая мышка на интересующую линию показывает нам подсказку, которая говорит нам всё что нам надо знать.

Здесь мы можем видеть что эта линия была зафиксирована Бобом в фиксации f6c0, а затем я её переместил в её новое месторасположение в фиксации b312.

Задание к выполнению

Задание по управлению версиями:

1 Если система контоля версий Git не установлена, то установить ее (параметры оставить по умолчанию).

2 Запустить Git GUI или TortoiseGit (или консоль). Создать новый репозиторий (в папке по фамилии студента).

3 Добавить в папку репозитория файлы. Зафиксировать состояние репозитория (выполнить commit).

4 Внести изменения в файлы. Зафиксировать новое состояние репозитория.

5 Создать новую ветку 1. Внести в нее изменения (добавить новый файл и изменить существующий файл: добавить, удалить и изменить строки) и зафиксировать их.

6 Переключиться на ветку мастера. Внести в нее изменения (добавить новый файл; изменить существующие файлы: добавить, удалить и изменить строки первоначального файла) и зафиксировать их.

7 Продемонстрировать слияние веток. Разрешить возникший конфликт.

8 Просмотреть дерево изменений веток (историю).

9 Продемонстрировать откат изменений в ветке 1.

10 Создать удаленный репозиторий (на github.com или в сети).

11 Отправить данные на удаленный репозиторий (выполняется одним из студентов подгруппы).Добавить к удаленному репозиторию участников проекта.

12 Получить данные из удаленного репозитория (выполняется прочими студентами).

13 Изменить полученные данные.

14 Зафиксировать изменения и отправить их на удаленный репозиторий (выполняется всеми студентами подгруппы).

15 Получить данные из удаленного репозитория.

16 Просмотреть историю изменений.

Дополнительно:

1. Продемонстрировать работу revert и reset.

2. Продемонстрировать сохранение изменений в stash с последующим восстановлением.

3. Продемонстрировать создание и применение серии патчей.

4. Продемонстрировать создание и применение тегов.

5. Продемонстрировать rebase.

 

Отчет:

После выполнения работы составляется отчет, который содержит:

l титульный лист,

l описание исходных требований,

l выполняемые команды и скриншоты результатов для Git.

Контрольные вопросы

1. Что такое система управления версиями?

2. Как создать репозиторий?

3. Как создать ветку?

4. Как провести слияние? Как разрешить конфликт и что это такое?

5. Как зафиксировать изменения?

6. Как провести откат? Различия в reset и revert, мягкий и жесткий reset.

7. Какова последовательность действий при работе с локальным репозиторием?

8. Какова последовательность действий при работе с удаленным репозиторием?

9. Каковы возможности при работе с удаленным репозиторием? Как его клонировать, получать и отправлять данные?

Источники

· Система управления версиями Git:

· Дистрибутив выдается преподавателем или скачивается из интернета.

· Основной материал — методичка по использованию Windows-клиента Git-Gui

· Теория — методичка по командам Git

· Дополнительно - Краткое руководство по использованию Windows-клиента Git-Gui http://tutorials.assembla.com/git-guide-for-windows-users/tour.ru.html

· Дополнительно - Руководство по использованию ее аналога Git Extensions http://www.rsdn.ru/article/tools/Git.xml

· Дополнительно - Краткое руководство по командам Git http://www.calculate-linux.ru/main/ru/git

· Дополнительно - Подробное руководство по командам Git http://marklodato.github.io/visual-git-guide/index-ru.html

Инструментальные средства управления версиями

 

Учебно-методические материалы «Инструментальные средства управления версиями» представляют собой методические указания к лабораторной работе по дисциплинам «Технологии разработки программного обеспечения» (по направлению магистерской подготовки) и «Технологии проектирования» (по направлению инженерной подготовки).

Цель работы:

Изучить базовые возможности систем управления версиями с применением CASE средств.

В материалах рассмотрены принципы управления версиями. Приведены инструкции по работе с версиями программ в среде управления версиями Git. Рассмотрены примеры использования указанных средств. В заключительной части методических указаний приведены контрольные вопросы, список рекомендуемой литературы и пример задания.

Ознакомившись с методическими указаниями и разобрав приведенные в нем примеры, студент может получить у преподавателя свой вариант задания и приступить к его выполнению.

 


Оглавление

Теоретическая часть................................................................................................................................. 2

Руководство по системе управления версиями - Git.................................................................. 2

Последовательность работ с локальным репозиторием............................................................. 3

Создание хранилища (GIT GUI)................................................................................................... 3

Фиксация изменений (commiting)................................................................................................ 5

Ветвление (branching).................................................................................................................... 8

Слияние (merging)........................................................................................................................ 11

Просмотр истории........................................................................................................................ 13

Отмена изменений (revert или reset).......................................................................................... 15

Публикация изменений (pushing) на удалённом сервере........................................................ 16

Получение изменений (pulling) с удалённого сервера............................................................. 17

Последовательность работ с удаленным репозиторием.......................................................... 20

Задание к выполнению......................................................................................................................... 22

Контрольные вопросы.......................................................................................................................... 23

Источники.............................................................................................................................................. 23

 

 

Теоретическая часть


Поделиться с друзьями:

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.049 с.