Главная страница
Навигация по странице:

  • Формат команды git pull

  • 3. ПРАКТИЧЕСКОЕ ИСПОЛЬЗОВАНИЕ GIT 3.1. Управление репозиторием из среды программирования

  • 3.1.1. Операции с репозиторием Git в среде PyСharm

  • 3.1.1.1. Подключение локального репозитория к проекту PyCharm

  • 3.1.1.2. Клонирование внешнего репозитория в проект PyCharm

  • 3.1.1.3. Выполнение команд Commit и push из проекта PyCharm

  • 3.1.2. Операции с репозиторием Git в среде Visual Studio

  • 3.1.2.2. Графическая схема репозитория

  • 3.1.2.3. Выполнение команд Commit и push из проекта Visual Studio

  • 3.2. Учебный портал сайта GitFlic

  • 3.2.1. Вход на учебный портал GitFlic

  • 3.2.2. Регистрация преподавателей и студентов

  • 3.2.3. Взаимодействие преподавателя и студентов

  • Система управления версиями Git. Система управления версиями git и российский сервис хранения исходного кода gitflic


    Скачать 3.56 Mb.
    НазваниеСистема управления версиями git и российский сервис хранения исходного кода gitflic
    Дата03.05.2023
    Размер3.56 Mb.
    Формат файлаpdf
    Имя файлаСистема управления версиями Git.pdf
    ТипУчебное пособие
    #1107197
    страница9 из 12
    1   ...   4   5   6   7   8   9   10   11   12
    git pull
    Команда git pull загружает изменения из внешнего репозитория во внутреннюю ветку (то же, что делает git fetch) и пытается перенести эти из- менения в локальную рабочую директорию (то же, что делает команда git merge). Если при слиянии веток не возникает конфликтов, то изменения по- явятся в локальной рабочей директории сразу же после выполнения ко- манды git pull.
    Формат команды git pull:
    git pull <ключи> <имя удалённого репозитория>
    Возможные значения ключей:
    --ff – использовать режим fast-forward при слиянии веток, если это воз- можно;
    --no-ff – отключить режим fast-forward;
    --ff-only – остановить выполнение команды, если слияние невозможно выполнить в режиме fast-forward.
    Контрольные вопросы

    97 1. Что такое рабочая директория в системе управления версиями Git?
    2. Что такое «индекс» в системе управления версиями Git?
    3. Опишите, на что влияет содержание каждого из файлов настроек
    Git: системного, локального, глобального?
    4. Опишите принцип отнесения файла проекта к одной из категорий: отслеживаемые/не отслеживаемые, изменённые/не изменённые.
    5. Опишите назначение и принципы организации таких объектов Git, как Blob и Tree.
    6. Какие действия необходимо выполнить для добавления коммита во внешний репозиторий?
    7. Для чего используется файл Head?
    8. Опишите варианты, которые могут возникнуть при удалении файла из репозитория, в зависимости от его текущего состояния.
    9. Чем «неявное слияние» отличается от «явного слияния»?
    10. Опишите процесс устранения конфликтов, возникающих при сли- янии веток.
    11. В чём отличия команд, предназначенных для получения данных из внешнего репозитория git clone, git pull, git fetch?

    98
    3. ПРАКТИЧЕСКОЕ ИСПОЛЬЗОВАНИЕ GIT
    3.1. Управление репозиторием из среды программирования
    Рассмотренные в предыдущих разделах команды Git позволяют в пол- ной мере управлять репозиторием: создавать и переключать ветки, просмат- ривать изменения, добавлять файлы в индекс, делать коммиты и т.п. Работа в режиме командной строки даёт чувство полного контроля над компьюте- ром. Это увлекательный, но не очень удобный и совсем не наглядный про- цесс. К тому же разработка программного обеспечения всё реже ведётся в режиме командной строки и всё чаще с использованием интегрированных сред разработки (IDE), таких как Microsoft Visual Studio, Borland Embar- cadero. Выполняя работу с использованием IDE, не всегда удобно переклю- чаться в режим командной строки для управления репозиторием, поэтому
    IDE предоставляют встроенные графические средства для работы с Git. Эти средства позволяют как управлять локальным репозиторием, так и осу- ществлять обмен данными с удалённым. В настоящем разделе описана ра- бота с репозиторием Git в JetBrains PyCharm и Microsoft Visual Studio. Изу- чив принципы работы с Git в указанных IDE, читатель в дальнейшем сможет самостоятельно освоить управление репозиторием в других IDE.
    3.1.1. Операции с репозиторием Git в среде PyСharm
    Материал, изложенный в настоящем разделе, актуален для версий
    PyСharm, начиная с 2020. В более ранних версиях средства работы с систе- мами управления версиями представлены в ограниченном объёме.
    3.1.1.1. Подключение локального репозитория к проекту PyCharm
    Локальный репозиторий может быть создан на компьютере вне IDE
    PyCharm. Если локальный репозиторий уже существует на момент запуска
    PyСharm, то выберите соответствующую директорию в качестве директо- рии проекта. После открытия проекта в главном меню будет присутствовать раздел Git (рисунок 3.1), из которого можно осуществлять управление репо- зиторием. Доступны знакомые читателю из предыдущего раздела команды git commit, git push, git fetch и другие. Все команды выполняются в графическом режиме. Это значит, что программисту достаточно ввести в соответствующие

    99 поля экранной формы параметры команды и нажать кнопку подтверждения вы- полнения. PyСharm автоматически сформирует команду git и выполнит её.
    Если директория проекта не является репозиторием, то вместо раздела
    Git в главном меню будет присутствовать раздел VCS, содержащий ко- манды, позволяющие, в случае необходимости, подключить к проекту внешний репозиторий.
    3.1.1.2. Клонирование внешнего репозитория в проект PyCharm
    PyCharm позволяет выполнить команду git clone с использованием графического интерфейса и перенести на локальный компьютер файлы из удалённого репозитория.
    Создайте новый проект, не являющийся репозиторием Git. В главном меню выберите команду VCS/ Get from Version Control (рисунок 3.2).
    PyCharm запустит процесс клонирования внешнего репозитория. На пер- вом шаге появится окно, позволяющее указать адрес внешнего репозитория и авторизоваться (рисунок 3.3). В поле URL введите URL-адрес внешнего репо- зитория (например: https://edu.gitflic.ru/project/student/project_1.git), логин и па- роль. Нажмите кнопку Clone. PyCharm запустит на выполнение команду git clone (см. раздел 2.25.3). Если авторизация и клонирование пройдут успешно, пункт меню VSC (рисунок 3.2) превратится в пункт меню Git (рисунок 3.1).
    Рисунок 3.1 – Меню Git

    100
    Рисунок 3.2 – Клонирование внешнего репозитория
    Если во внешнем репозитории отсутствует ветка с именем master, то рабочая директория проекта будет пустой. Для того чтобы извлечь файлы проекта из архива, необходимо выполнить команду git checkout с указанием имени ветки, которая существует в проекте. Команду git checkout нужно бу- дет выполнить из командной строки операционной системы или из вкладки terminal PyCharm, находясь в директории локального репозитория.
    Рисунок 3.3 – Ввод адреса внешнего репозитория

    101
    В дальнейшем проект с клонированным репозиторием нужно откры- вать так, как описано в разделе 3.1.1.1.
    3.1.1.3. Выполнение команд Commit и push из проекта PyCharm
    В PyCharm команда git add объединена в одном графическом интер- фейсе с командой git commit.
    Для выполнения коммит выберите из главного меню PyCharm ко- манду Git/Commit… (рисунок 3.1).
    Появится вкладка Commit (рисунок 3.4). В верхней части вкладки отображается список файлов, в которые были внесены изменения. Из этого списка необходимо выбрать файлы, предназначенные для добавления в ком- мит. Выбор осуществляется отметкой соответствующего чек-бокса (напри- мер, на рисунке 3.4 выбран файл Ex_3.py). В нижней части окна находится текстовое поле, в которое необходимо ввести комментарий к коммиту. По- сле выбора всех необходимых файлов и ввода комментария нажмите кнопку
    Commit. PyCharm выполнит команду git add для всех выбранных файлов и затем выполнит команду git commit, указав в качестве комментария текст из нижнего текстового поля.
    Для записи коммита во внешний репозиторий выберите из главного меню PyCharm команду Git/Push… (рисунок 3.1). В появившемся диалого- вом окне будет отображено имя текущей ветки и имя ветки внешнего репо- зитория, в который будет производиться копирование. Кроме того, будут перечислены все коммиты, имеющиеся в этой ветке. Для копирования ветки целиком необходимо выбрать её имя. Это соответствует команде git push с ключом -all. В правой части диалогового окна будет выведен список файлов, включённых в коммиты ветки. В списке зелёным цветом маркируются файлы, которые ранее были скопированы во внешний репозиторий и не были изменены. Синим цветом маркируются файлы, которые были изме- нены, добавлены в один из коммитов, но не были скопированы во внешний репозиторий.
    Для копирования одного из коммитов ветки необходимо выбрать его из списка. После выбора коммита подробная информация о нём будет отоб- ражена в правой части окна.

    102
    Рисунок 3.4 – Создание коммита
    Для активации процедуры копирования необходимо нажать кнопку
    Push.
    Переключение между ветками репозитория осуществляется путём вы- бора команды Git/rebase из главного меню PyCharm.
    Если во внешний репозиторий были внесены изменения, например, вами с другого компьютера, то необходимо обновить проект:
    − команда PyCharm Git/Update Project (рисунок 3.1) является макси- мально автоматизированной командой git fetch с последующим обновле- нием веток;
    − команда PyCharm Git/pull реализует графический интерфейс для ко- манды git pull с возможностью указания ключей;

    103
    − команда PyCharm Git/Fetch реализует графический интерфейс для команды fit fetch.
    3.1.2. Операции с репозиторием Git в среде Visual Studio
    3.1.2.1. Клонирование репозитория
    Есть два пути клонировать репозиторий с использованием возможно- стей Visual Studio. Первый из них заключается в выборе опции «Клонирова- ние репозитория» при создании проекта. Второй путь заключается в выборе команды «Git/Клонировать репозиторий» из главного меню. Каждый из этих вариантов приведёт к появлению на экране формы описания парамет- ров клонирования. На форме присутствуют два текстовых поля. В одно из них необходимо ввести URL-адрес внешнего репозитория, в другое – путь к пустой директории, в которой будет размещён результат клонирования.
    После подтверждения данных начнётся процесс клонирования.
    Ход процесса клонирования будет отображаться в окне «Вывод», рас- положенном в нижней части рабочей области Visual Studio (рисунок 3.5). По умолчанию, после клонирования Visual Studio пытается сделать активной ветку master. Если такой ветки в репозитории нет, то будет выведено преду- преждение: Warning: remote HEAD refers to nonexistent ref, unable to check- out. Файлы проекта не будут извлечены из архива, рабочая директория будет пустой.
    Рисунок 3.5. – Клонирование репозитория
    Для извлечения файлов из архива в рабочую директорию необходимо переключиться на одну из веток, существующих в проекте:
    C:\VisualStudio_Git\GitBook>git checkout Main_branch
    Switched to branch 'Main_branch'
    Your branch is up to date with 'origin/Main_branch'.
    После извлечения файлов проекта в рабочую директорию они будут

    104 отображены в обозревателе решений Visual Studio (рисунок 3.6).
    Рисунок 3.6 – Содержимое рабочей директории
    3.1.2.2. Графическая схема репозитория
    Visual Studio позволяет вывести графическую схему репозитория в центральной части рабочей области. Для добавления графической схемы необходимо:
    − выбрать репозиторий из главного меню «Git/Локальные репозито- рии»;
    − выбрать способ отображения графической информации из главного меню: «Git/Просмотреть журнал ветвей» или «Git/Управление ветвями». В первом случае будет выведена схема коммитов для текущей ветви. Во вто- ром случае, в дополнение к схеме коммитов, будет выведено окно, в кото- ром отображаются названия всех ветвей проекта.
    Пример графической схемы в режиме «Управление ветвями» изобра- жён на рисунке 3.7. При однократном щелчке левой кнопкой мышки по названию ветви в левой части окна произойдёт смена схемы коммитов в пра- вой части окна. При двойном щелчке мышки по коммиту будет отображено состояние файлов проекта, соответствующее выбранному коммиту, и состо- яние файлов проекта, соответствующее предыдущему коммиту. Разметка файлов выделяет различия между коммитами.

    105
    Рисунок 3.7. – Графическая схема коммитов в режиме «Управление ветвями»
    3.1.2.3. Выполнение команд Commit и push из проекта Visual Studio
    Операции добавления файлов в индекс, создание коммита и выгрузка коммита во внешний репозиторий выполняются с помощью вкладки «Изме- нения Git», расположенной в правой части рабочей области Visual Studio
    (рисунок 3.8). Вкладка «Изменения Git» содержит список файлов проекта, которые были изменены, но не добавлены в коммит. При наведении курсора мышки на имя файла отобразятся иконки с кнопками управления:
    − стрелка влево – щелчок мышкой по этой кнопке приведёт к отмене последних изменений;
    − знак плюс – щелчок мышкой по этой кнопке приведёт к добавлению файла в индекс.
    В верхнее окно редактирования вводится комментарий, который бу- дет сохранён в коммите. Выпадающий список «Зафиксировать все» позво- ляет выбрать команды для выполнения следующих действий:
    − зафиксировать все – будет создан коммит в локальном репозитории, включающий все файлы, которые были добавлены в индекс;
    − зафиксировать все и отправить – будут последовательно выпол- нены команды git commit и git push;
    − зафиксировать всё и синхронизировать – будут последовательно выполнены команды git commit, git fetch и git push;
    − спрятать все – будет выполнена команда git stash с ключом –include- untracked;

    106
    − спрятать все и сохранить промежуточные данные – будет выпол- нена команда git stash с ключом –keep-index.
    Рисунок 3.8 – Окно фиксации изменений файлов проекта
    3.2. Учебный портал сайта GitFlic
    Репозитории системы контроля версий Git могут располагаться не только на локальном компьютере, но и в облаке. Облачное размещение поз- воляет упростить организацию коллективного использования репозитория разработчиками программного обеспечения. Один из членов коллектива со- здаёт репозиторий, остальные клонируют его на локальные компьютеры и, по мере необходимости, сохраняют коммиты в облаке.
    Сохранить репозиторий можно в любом облачном хранилище. Суще- ствуют и специализированные хранилища. Названия некоторых из них

    107 начинаются со слова Git: GitHub, GitLab, GitLinux, GitFliс. В названиях дру- гих слова Git нет: Bitbucket, Beanstalk, SourceForge. Ни одно из таких храни- лищ не является Git. Система контроля версий Git должна быть установлена на локальном компьютере, независимо от того, где размещается репозито- рий, в одном из облачных хранилищ или на локальном диске.
    Git можно использовать не только непосредственно для управления версиями, но и для других целей, связанных с хранением и обработкой про- граммного кода. Одним из примеров такого использования является учеб- ный портал сайта GitFlic. GifFlic является Git-репозиторием, и в то же время его учебный портал может использоваться для обучения студентов програм- мированию как на ранних стадиях обучения, так и при курсовом (диплом- ном) проектировании.
    В процессе обучения студенты получают от преподавателя задания на создание программного кода. В процессе подготовки решения студенты со- храняют в репозитории историю своей работы в виде git-коммитов. Препо- даватель имеет возможность просматривать коммиты и оставлять коммен- тарии с целью помочь студентам исправить имеющиеся ошибки.
    В настоящем разделе описывается работа с учебным порталом сайта
    GitFlic.
    3.2.1. Вход на учебный портал GitFlic
    Для перехода к учебному порталу GitFlic наберите в адресной строке браузера: edu.gitflic.ru
    Введите логин и пароль. В случае успешного входа откроется привет- ственная страница портала.
    Кликните мышкой по строчке со своими именем и фамилией в правом верхнем углу экрана. Откроется главная страница личного кабинета GitFlic.
    Для перехода на главную страницу из любого места личного кабинета кликните мышкой на строчке со своими именем и фамилией в левом верх- нем углу экрана.
    Главная страница содержит:
    − вертикальное меню, расположенное в её левой части;

    108
    − горизонтальное меню со вспомогательными ссылками, располо- женное в нижней части;
    − горизонтальное меню со списком вкладок, расположенное в верх- ней части;
    − рабочую область, в центре.
    3.2.2. Регистрация преподавателей и студентов
    Преподавателей на учебном портале GitFlic регистрирует админи- стратор портала. После регистрации преподавателю передаётся логин и па- роль.
    Студенты регистрируются с использованием ссылки-приглашения, которая создаётся преподавателем для каждой учебной группы. Для созда- ния ссылки-приглашения необходимо выполнить следующие действия:
    − выбрать из вертикального меню пункт «Сообщество»;
    − из окна, расположенного в рабочей области, выбрать «Московский университет им. С.Ю. Витте»;
    − из верхнего горизонтального меню выбрать вкладку «Группы»;
    − кликнуть мышкой по кнопке «Добавить группу»;
    − заполнить сведения о группе, кликнуть мышкой по кнопке «Сохра- нить»;
    − найти вновь созданную группу в списке групп прямым поиском или с помощью поля «Поиск»;
    − кликнуть по иконке «цепочка», расположенной справа от названия группы, в результате чего откроется ссылка-приглашение.
    Каждый из студентов учебной группы переходит по полученной ссылке-приглашению и создаёт для себя логин и пароль, после чего проис- ходит автоматическая регистрация.
    После регистрации студенту необходимо отредактировать сведения о фамилии и имени в профиле. Для чего:
    − щёлкнуть мышкой по временному имени в верхнем углу главного экрана (произойдёт переход на вкладку «Профиль»);
    − щёлкнуть мышкой по кнопке «Редактировать профиль» (кнопка находится под большим кружком с буквой;

    109
    − ввести в соответствующие поля имя и фамилию;
    − щёлкнуть мышкой по кнопке «Сохранить».
    После регистрации студентов преподаватель, проводящий регистра- цию студентов, должен подтвердить введённые студентом фамилию и имя.
    Для чего:
    − перейти на вкладку «Группы» (см. выше);
    − найти в списке требуемую группу, для чего в поле «Поиск» ввести номер группы. Кликнуть мышкой по названию группы. Откроется список студентов группы;
    − если в списке студентов вместо фамилии и имени указан псевдо- ним, то кликнуть мышкой по имени студента. На открывшейся вкладке кликнуть мышкой по кнопке «Редактировать»;
    − в окне редактирования сведений о студенте подтвердить фамилию и имя студента, щёлкнув мышкой по соответствующим подсказкам, распо- ложенным под полями «Имя студента» и «Фамилия студента»;
    − щёлкнуть мышкой по кнопке «Сохранить».
    3.2.3. Взаимодействие преподавателя и студентов
    Взаимодействие преподавателя и студента при использовании учеб- ного портала GitFlic происходит по следующей схеме:
    − преподаватель создаёт задания и распределяет их между студен- тами;
    − получив задание, студент создаёт репозиторий на учебном портале
    GitFlic и связывает его с локальным репозиторием на рабочем компьютере;
    − в ходе выполнения задания студент сохраняет промежуточные ре- зультаты в виде коммитов в локальном репозитории и, по мере готовности решения, синхронизирует локальный репозиторий с GitFlic;
    − после завершения выполнения задания студент отправляет препо- давателю ссылку на окончательную версию программного кода, хранящу- юся в репозитории GitFlic;
    − преподаватель проверяет правильность выполнения задания;
    − в случае отсутствия ошибок преподаватель подтверждает факт вы- полнения задания;

    110
    − при наличии ошибок преподаватель добавляет в код студента ком- ментарии с указанием на ошибки и возвращает работу на доработку.
    В следующих разделах дано описание действий, выполняемых на всех этапах взаимодействия преподавателя и студента.
    1   ...   4   5   6   7   8   9   10   11   12


    написать администратору сайта