method_gitgui_lab7 (Лабораторная работа 2 - Git, управление версиями)

2017-12-22СтудИзба

Описание файла

Файл "method_gitgui_lab7" внутри архива находится в папке "Лабораторная работа 2 - Git, управление версиями". Документ из архива "Лабораторная работа 2 - Git, управление версиями", который расположен в категории "". Всё это находится в предмете "технология проектирования" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "технология проектирования" в общих файлах.

Онлайн просмотр документа "method_gitgui_lab7"

Текст из документа "method_gitgui_lab7"

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

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

Цель работы:

Изучить базовые возможности систем управления версиями с применением 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 над
собственным персональным проектом:

  1. создаем рабочую директорию проекта.

  2. создаем репозитарий в директории.

  3. индексируем все существующие файлы проекта (добавляем в репозиторий) и создаем инициализирующий коммит.

  4. Создаем новую ветку,

  5. переключение в новую ветку (можно сделать в один шаг).

  6. Далее, после непосредственной работы с кодом,

  7. индексируем внесенные изменения и совершаем коммит.

  8. Переключаемся в основную ветку,

  9. смотрим отличия между последним коммитом активной ветки и последним коммитом экспериментальной.

  10. Проводим слияние,

  11. если был конфликт, то разрешаем его и повторяем слияние.

  12. Ну и на всякий случай оценим проведенную за последний день работу.


Почему именно так? Зачем отказываться от линейной модели? Хотя бы даже потому,
что у программиста появляется дополнительная гибкость: он может переключаться
между задачами (ветками); под рукой всегда остается «чистовик» — ветка
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 (Ветвь → Перейти).

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

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5166
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее