method_gitgui_lab7 (1035339)
Текст из файла
Инструментальные средства управления версиями
Учебно-методические материалы «Инструментальные средства управления версиями» представляют собой методические указания к лабораторной работе по дисциплинам «Технологии разработки программного обеспечения» (по направлению магистерской подготовки) и «Технологии проектирования» (по направлению инженерной подготовки).
Цель работы:
Изучить базовые возможности систем управления версиями с применением 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, оставив все параметры по умолчанию.
Последовательность работ с локальным репозиторием
Git обладает необычайной легкостью в использовании не только как распределенная
система контроля версий, но и в работе с локальными проектами. Давайте разберем
обычный цикл — начиная с создания репозитария — работы разработчика git над
собственным персональным проектом:
-
создаем рабочую директорию проекта.
-
создаем репозитарий в директории.
-
индексируем все существующие файлы проекта (добавляем в репозиторий) и создаем инициализирующий коммит.
-
Создаем новую ветку,
-
переключение в новую ветку (можно сделать в один шаг).
-
Далее, после непосредственной работы с кодом,
-
индексируем внесенные изменения и совершаем коммит.
-
Переключаемся в основную ветку,
-
смотрим отличия между последним коммитом активной ветки и последним коммитом экспериментальной.
-
Проводим слияние,
-
если был конфликт, то разрешаем его и повторяем слияние.
-
Ну и на всякий случай оценим проведенную за последний день работу.
Почему именно так? Зачем отказываться от линейной модели? Хотя бы даже потому,
что у программиста появляется дополнительная гибкость: он может переключаться
между задачами (ветками); под рукой всегда остается «чистовик» — ветка
master; коммиты становятся мельче и точнее.
Создание хранилища (GIT GUI)
Работать можно в командной строке (инструкции см. в соответствующем файле), или в интерфейсе Git Gui, или в интерфейсе TortoiseGit (на усмотрение студента).
Далее подробно рассматривается работа с Git Gui.
Что бы создать хранилище, сначала создайте папку в которой ваш проект будет жить. Далее, правый щелчок мышки на этой папке и выберете Git GUI. Так-как в папке пока что не содержится git хранилища вам будет показан диалог создания.
Выбор Create New Repository приводит нас к следующему диалогу.
Заполните путь к вашей новой директории и щёлкните Create. Далее вы увидите главный интерфейс git gui, который в дальнейшем будет показываться когда вы будете делать правый щелчок на вашей папке и выбирать Git GUI.
Теперь когда хранилище создано, вам надо сообщить git-у кто вы такой, что бы сообщении фиксации (commit message) был отмечен правильный автор. Что бы сделать это, выберете Edit → Options (Редактировать → Настойки).
В диалоге опций расположены 2 варианта на выбор. С левой стороны диалога опции которые влияют только на это хранилище, в то время как правая сторона содержит глобальные опции применяемые ко всем хранилищам. Значения по умолчанию приемлемы, так что заполните только имя пользователя и email, пока что. Если у вас есть любимый шрифт, вы можете выставить его сейчас, так же.
Фиксация изменений (commiting)
Теперь, когда хранилище было создано, пора создать что-нибудь для фиксации. Для этого примера я создал файл main.c со следующим содержимым (редактирование выполняется в блокноте или другом редакторе):
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello world!\n");
return 0;
}
Щелчок на кнопку Rescan (Перечитать) в git gui заставит его искать новые, измененные и удалённые файлы в директории. На следующем скриншоте git gui нашёл новый файл.
Что бы добавить этот файл в фиксацию, щёлкните на иконке слева от имени файла. Файл будет перемещён с Unstaged Changes (Измененено) панели на Staged Changes (Подготовлено) панель. Теперь мы можем добавить сообщение фиксации (commit message) и зафиксировать изменения Commit (Сохранить) кнопкой.
Говорить 'hello world' это конечно хорошо, но я хочу что бы моя программа была более персонализирована. Давайте скажем 'hello' пользователю. Вот как будет выглядеть измененный код (редактирование выполняется в блокноте или другом редакторе):
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
char name[255];
printf("Enter your name: ");
fgets(name, 255, stdin);
printf("length = %d\n", strlen(name)); /* debug line */
name[strlen(name)-1] = '\0'; /* remove the newline at the end */
printf("Hello %s!\n", name);
return 0;
}
У меня были проблемы с тем что новая линия печаталась после имени пользователя, поэтому я добавил отладочную линию кода, что бы помочь себе найти причину. Я бы хотел зафиксировать изменение без этой отладочной линии, но я хочу сохранить эту линию в моей рабочей копии что бы продолжить отладку. С git gui это не проблема. Сначала щёлкните Rescan (перечитать) для поиска изменений.
Изменения выделены красным (удаленные линии) или зеленым (добавленные линии).
Далее щёлкните на иконке слева от файла что бы подготовить (stage) изменения к фиксации. Файл будет перенесен в нижнее окно.
Затем правый щелчок на отладочной линии и выберите Unstage Line From Commit (Убрать строку из подготовленного).
Теперь отладочная линия не была подготовлена (unstaged) к фиксации, в то время как остальные изменения были. Осталось только заполнить сообщение фиксации и зафиксировать изменения щёлкнув по Commit (Сохранить).
Ветвление (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 (Ветвь → Перейти).
Теперь мы можем исправить нашу большую ошибку.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.