Спец курс (Автоматизация процесса проектирования)/Практические задания (Пример) — различия между версиями
Материал из Wiki
Vidokq (обсуждение | вклад) |
Vidokq (обсуждение | вклад) (→Создаем fork проекта) |
||
(не показаны 36 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
{{BASH}} | {{BASH}} | ||
− | + | == Регистрируемся на github.com == | |
− | [[Файл:Github reg.png| | + | {{Info|[https://github.com/login https://github.com/login]}} |
− | [[File:Github reg acc.png| | + | |
+ | [[Файл:Github reg.png|frame|center| Шаг 1]] | ||
+ | [[File:Github reg acc.png|frame|center| Шаг 2]] | ||
+ | |||
+ | == Выбираем проект, над которым будем работать == | ||
+ | <!-- [https://github.com/vzaicev/bash/tree/master/2018 https://github.com/vzaicev/bash/tree/master/2018] | ||
+ | --> | ||
+ | [https://github.com/vzaicev/bash/tree/master/2021 https://github.com/vzaicev/bash/tree/master/2021] | ||
+ | |||
+ | * В нашем случае это проект по выполнению лабораторных работ за 2021 год | ||
+ | |||
+ | == Логинимся на GitHub == | ||
+ | Если еще не залогинились, то | ||
+ | |||
+ | [[File:Github reg login.png|frame|center]] | ||
+ | |||
+ | == Создаем fork проекта == | ||
+ | |||
+ | * Есть 2 способа ведения работы над проектом | ||
+ | ** Используя Ваш собственный репозиторий и общий пароль и права доступа к нему | ||
+ | ** Используя чужой репозиторий, '''fork''' и '''push''' request для добавления изменений | ||
+ | {{Карандаш|24px}} Мы будем использовать второй вариант (fork) | ||
+ | |||
+ | |||
+ | # Заходим в проект https://github.com/vzaicev/bash/tree/master/2021 | ||
+ | # Делаем ответвление (fork) от проекта в свой репозиторий. | ||
+ | |||
+ | [[File:Github reg fork.png|frame|center]] | ||
+ | |||
+ | * Получаем копию начального репозитория у себя | ||
+ | * Обратите внимание, что путь в браузере будет содержать '''ваш адрес и имя''' '''(1)''' | ||
+ | * Также обратите внимание на то, что будет указано из какого проекта изначально была сделана ветка '''(2,3)''' | ||
+ | * Счетчик форков будет показывать сколько ветвлений Вы сделали '''(4)''' | ||
+ | * Также вам станет доступно добавление файлов и директорий, и делать сабмиты под Вашим пользователем '''(5)''' | ||
+ | |||
+ | [[File:Github reg fork2.png|frame|center|800px]] | ||
+ | |||
+ | == Устанавливаем пакет для Cygwin для работы с git == | ||
+ | |||
+ | * Запускаем скачанный с сайта установщик [https://cygwin.com/install.html https://cygwin.com/install.html] | ||
+ | *{{ЖЛампа|24px}} {{Кр|'''Обязательно обращаем внимание на то, чтобы путь не содержал русских букв и пробелов'''}} | ||
+ | * Задаем путь установки | ||
+ | * Задаем путь где локально дуте хранится информация о пакетах | ||
+ | * Выбираем зеркало с какого будем скачивать пакеты (можно первое в списке) | ||
+ | |||
+ | [[File:Cygwin install.png|frame|center]] | ||
+ | |||
+ | * Ищем в списке пакетов GIT и добавлем его к установке | ||
+ | [[File:Cygwin install git.png|frame|center]] | ||
+ | |||
+ | == Загружаем свой репозиторий на локальную машину == | ||
+ | |||
+ | * Запускам терминал и создаем рабочую директорию | ||
+ | |||
+ | mkdir name_of_dir # создаем директори | ||
+ | cd name_of_dir # Переходим в директорию | ||
+ | |||
+ | [[File:Mkdir for git.png|frame|center]] | ||
+ | |||
+ | * Копируем адрес нашего форкнутого репозитория | ||
+ | |||
+ | [[File:Clone to loc.png|frame|center]] | ||
+ | |||
+ | * Извлекаем репозиторий на локальную машину | ||
+ | |||
+ | git clone https://github.com/zaicevvs/bash.git | ||
+ | |||
+ | [[File:Clone to loc cmd.png|frame|center]] | ||
+ | |||
+ | * Теперь в нашем локальной директории есть копия всего проекта. | ||
+ | |||
+ | [[File:Cd to work.png|frame|center]] | ||
+ | |||
+ | * Переходим в свежесозданную папку репозитория и настраиваем его | ||
+ | ** Указываем имя пользователя (то, что использовали при регистрации на Github) | ||
+ | ** Указываем адрес электронной почты (тот, что использовали при регистрации на Github) | ||
+ | git config user.name zaicevvs | ||
+ | git config user.email zaicevvs@ex.com | ||
+ | |||
+ | [[file:Config_git.png|frame|center]] | ||
+ | |||
+ | == Выполняем практическое задание == | ||
+ | * Результатом задания будет скрипт | ||
+ | * Скрипт должен содержать, ключ который позволит вывести в задание | ||
+ | ** Название ключа <tt>-task</tt> | ||
+ | ** Ключ может идти не обязательно первым | ||
+ | ** Сообщение должно идти первым и отображать задание | ||
+ | ** После задания должны следовать 2 пустые строки | ||
+ | ** Далее результат выполнения скрипта | ||
+ | ** В случае, если ключ не задан, то результат выполнения идет сразу без дополнительных пустых строк | ||
+ | * Скрипт должен иметь название следующего формата lab<XX>_z<YY>.sh, где | ||
+ | ** XX – номер лабораторной | ||
+ | ** YY – номер задачи или имя дополнительного скрипта, необходимого для выполнения задачи | ||
+ | ** файл должен иметь расширение '''*.sh''' | ||
+ | ** Файл должен иметь права доступа 755 (команда установки прав доступа: <tt>chmod 755 lab01_z1.sh</tt>) | ||
+ | ** Если в лабораторной нет подзадач, то в названии допускается отсутствие _z<YY> (например: <tt>lab01.sh</tt>) | ||
+ | |||
+ | [[File:Bash Lab1 z1.png|frame|center]] | ||
+ | |||
+ | == Добавление изменений в локальный репозиторий == | ||
+ | |||
+ | * После того, как скрипт написан можно его добавить в локальный репозиторий ('''закомитить''') | ||
+ | ** '''git status'''. Воспользовавшись командой git status можно узнать, на какой ветке (branch) репозитория Вы сейчас находитесь, какие изменения присутствуют в Вашей рабочей копии и другую информацию. | ||
+ | ''Рабочей копией'' называется совокупность файлов в локальной папке репозитория за исключением служебных файлов. | ||
+ | ** '''git add %file_path%''' – Подготавливаем файлы к добавлению | ||
+ | ** '''git commit -m "%commit_message%"''' – Сохраняем файлы в репозиторий. Использование команды без аргументов откроет текстовый редактор, где надо будет написать комментарий для коммита, коммит обязательно должен иметь комментарий. Другим вариантом задания комментария к коммиту является использование команды | ||
+ | ** Историю изменений можно посмотреть командой '''git log''' или '''git log --name-only'''. Если вся история изменений не умещается на экране, то можно пользоваться клавишами прокрутки на клавиатуре ("стрелочки", PgUp, PgDown), выход из режима просмотра изменений осуществляется нажатием клавиши "q". | ||
+ | |||
+ | [[File:Commit git.png|frame|center]] | ||
+ | |||
+ | == Отправка изменений на GitHub репозиторий == | ||
+ | |||
+ | * Далее отправим изменения на GitHub сервер | ||
+ | git push origin master | ||
+ | * При выполнении команда запросит логи и пароль к вашему репозиторию на GitHub. | ||
+ | ** {{Карандаш|24px}}При вводе из командной строки текст отображаться не будет, он скрыт, но он подставляется, так что продолжайте вводить. | ||
+ | |||
+ | [[File:Push git.png|frame|center]] | ||
+ | |||
+ | * Если выполнение команды произошло с ошибкой, значит на сервере кто-то изменил этот файл. Чтобы решить эту проблему нужно забрать последние изменения с сервера к себе и объединить их с локальными правками. | ||
+ | |||
+ | git pull | ||
+ | |||
+ | * После чего можно повторить команду отправки снова. | ||
+ | * Если выполнение прошло успешно, то можно посмотреть статус на GitHub. | ||
+ | |||
+ | [[File:Status on web git.png|frame|center]] | ||
+ | |||
+ | == Отправка результатов в общий репозиторий для проверки преподавателем == | ||
+ | |||
+ | * Для отправки ваших изменений в общий репозиторий Вашей группы нужно сделать pull запрос | ||
+ | * Выполним такой запрос из Web на GitHub. | ||
+ | ** Переходим во вкладку '''Pull request''' | ||
+ | ** Нажимаем кнопку '''New pull request''' | ||
+ | |||
+ | [[File:Pull to common rep.png|frame|center]] | ||
+ | |||
+ | * Далее мы увидим статус нашего запроса | ||
+ | ** Что и куда собираемся мержить | ||
+ | ** Можно ли его замержить автоматически или придется вручную решать какие части кода оставить | ||
+ | ** Содержимое файлов которые были добавлены или нуждаются в мержинге | ||
+ | * Нажимаем кнопку '''Create pull request''' (номер 4! на рисунке ниже) | ||
+ | |||
+ | [[File:Pull to common merge rep.png|frame|center]] | ||
+ | |||
+ | * Добавляем описание для нашего запроса. | ||
+ | ** Описание может содержать сообщение о выполненной работе | ||
+ | ** Или об исправлениях сделанных в ней | ||
+ | |||
+ | [[File:Description pull to common merge rep.png|frame|center]] | ||
+ | |||
+ | * Проверяем статус нашего запроса в общем репозитории группы | ||
+ | |||
+ | [[File:Status pull to common merge rep.png|frame|center]] | ||
+ | |||
+ | * Если кто-то запрашивает у Вас разрешение на внесение изменений в ваш репозиторий, то необходимо будет их проверить и принять или отклонить | ||
+ | |||
+ | [[File:Accept pull request.png|frame|center]] | ||
+ | |||
+ | * После того как ваши изменения были приняты, Вы можете видеть сообщение об этом. | ||
+ | |||
+ | [[File:Check after accept request.png|frame|center]] | ||
+ | |||
+ | == Перед выполнение следующего задания == | ||
+ | * После того как ваш Pull request был принят, можно приступать к след заданию | ||
+ | * Перед этим заберите последние изменения в ваш репозиторий на GitHub | ||
+ | ** Перейти на вкладку Pull Requests | ||
+ | ** Создаем новый реквест New pull request | ||
+ | ** Пишет, что нечего сравнивать, но не расстраиваемся и жмем switching the base | ||
+ | ** Появились отличия родительского и форкнутого проектов. Жмем Create pull request и даем ему название | ||
+ | ** Автоматически оказываемся в этом пул реквесте и жмем Merge pull request | ||
+ | ** И напоследок Confirm merge | ||
+ | |||
+ | [[File:Rebase1 git.png]] | ||
+ | |||
+ | [[File:Rebase2 git.png]] | ||
+ | |||
+ | [[File:Rebase3 git.png]] | ||
+ | |||
+ | [[File:Rebase4 git.png]] | ||
+ | |||
+ | [[File:Rebase5 git.png]] | ||
+ | |||
+ | [[File:Rebase6 git.png]] | ||
+ | |||
+ | * После заберите изменения в ваш локальный репозиторий | ||
+ | git pull |
Текущая версия на 15:53, 22 февраля 2021
Лекции SCRIPT
Лекции
Практические задания
- Пример работы с Git(Project)
- Пример работы с Git(Classroom)
Тесты
Табель успеваемости
Экзамен
Доп. материалы
Регистрируемся на github.com
![]() |
Выбираем проект, над которым будем работать
https://github.com/vzaicev/bash/tree/master/2021
- В нашем случае это проект по выполнению лабораторных работ за 2021 год
Логинимся на GitHub
Если еще не залогинились, то
Создаем fork проекта
- Есть 2 способа ведения работы над проектом
- Используя Ваш собственный репозиторий и общий пароль и права доступа к нему
- Используя чужой репозиторий, fork и push request для добавления изменений
Мы будем использовать второй вариант (fork)
- Заходим в проект https://github.com/vzaicev/bash/tree/master/2021
- Делаем ответвление (fork) от проекта в свой репозиторий.
- Получаем копию начального репозитория у себя
- Обратите внимание, что путь в браузере будет содержать ваш адрес и имя (1)
- Также обратите внимание на то, что будет указано из какого проекта изначально была сделана ветка (2,3)
- Счетчик форков будет показывать сколько ветвлений Вы сделали (4)
- Также вам станет доступно добавление файлов и директорий, и делать сабмиты под Вашим пользователем (5)
Устанавливаем пакет для Cygwin для работы с git
- Запускаем скачанный с сайта установщик https://cygwin.com/install.html
Обязательно обращаем внимание на то, чтобы путь не содержал русских букв и пробелов
- Задаем путь установки
- Задаем путь где локально дуте хранится информация о пакетах
- Выбираем зеркало с какого будем скачивать пакеты (можно первое в списке)
- Ищем в списке пакетов GIT и добавлем его к установке
Загружаем свой репозиторий на локальную машину
- Запускам терминал и создаем рабочую директорию
mkdir name_of_dir # создаем директори cd name_of_dir # Переходим в директорию
- Копируем адрес нашего форкнутого репозитория
- Извлекаем репозиторий на локальную машину
git clone https://github.com/zaicevvs/bash.git
- Теперь в нашем локальной директории есть копия всего проекта.
- Переходим в свежесозданную папку репозитория и настраиваем его
- Указываем имя пользователя (то, что использовали при регистрации на Github)
- Указываем адрес электронной почты (тот, что использовали при регистрации на Github)
git config user.name zaicevvs git config user.email zaicevvs@ex.com
Выполняем практическое задание
- Результатом задания будет скрипт
- Скрипт должен содержать, ключ который позволит вывести в задание
- Название ключа -task
- Ключ может идти не обязательно первым
- Сообщение должно идти первым и отображать задание
- После задания должны следовать 2 пустые строки
- Далее результат выполнения скрипта
- В случае, если ключ не задан, то результат выполнения идет сразу без дополнительных пустых строк
- Скрипт должен иметь название следующего формата lab<XX>_z<YY>.sh, где
- XX – номер лабораторной
- YY – номер задачи или имя дополнительного скрипта, необходимого для выполнения задачи
- файл должен иметь расширение *.sh
- Файл должен иметь права доступа 755 (команда установки прав доступа: chmod 755 lab01_z1.sh)
- Если в лабораторной нет подзадач, то в названии допускается отсутствие _z<YY> (например: lab01.sh)
Добавление изменений в локальный репозиторий
- После того, как скрипт написан можно его добавить в локальный репозиторий (закомитить)
- git status. Воспользовавшись командой git status можно узнать, на какой ветке (branch) репозитория Вы сейчас находитесь, какие изменения присутствуют в Вашей рабочей копии и другую информацию.
Рабочей копией называется совокупность файлов в локальной папке репозитория за исключением служебных файлов.
- git add %file_path% – Подготавливаем файлы к добавлению
- git commit -m "%commit_message%" – Сохраняем файлы в репозиторий. Использование команды без аргументов откроет текстовый редактор, где надо будет написать комментарий для коммита, коммит обязательно должен иметь комментарий. Другим вариантом задания комментария к коммиту является использование команды
- Историю изменений можно посмотреть командой git log или git log --name-only. Если вся история изменений не умещается на экране, то можно пользоваться клавишами прокрутки на клавиатуре ("стрелочки", PgUp, PgDown), выход из режима просмотра изменений осуществляется нажатием клавиши "q".
Отправка изменений на GitHub репозиторий
- Далее отправим изменения на GitHub сервер
git push origin master
- При выполнении команда запросит логи и пароль к вашему репозиторию на GitHub.
- Если выполнение команды произошло с ошибкой, значит на сервере кто-то изменил этот файл. Чтобы решить эту проблему нужно забрать последние изменения с сервера к себе и объединить их с локальными правками.
git pull
- После чего можно повторить команду отправки снова.
- Если выполнение прошло успешно, то можно посмотреть статус на GitHub.
Отправка результатов в общий репозиторий для проверки преподавателем
- Для отправки ваших изменений в общий репозиторий Вашей группы нужно сделать pull запрос
- Выполним такой запрос из Web на GitHub.
- Переходим во вкладку Pull request
- Нажимаем кнопку New pull request
- Далее мы увидим статус нашего запроса
- Что и куда собираемся мержить
- Можно ли его замержить автоматически или придется вручную решать какие части кода оставить
- Содержимое файлов которые были добавлены или нуждаются в мержинге
- Нажимаем кнопку Create pull request (номер 4! на рисунке ниже)
- Добавляем описание для нашего запроса.
- Описание может содержать сообщение о выполненной работе
- Или об исправлениях сделанных в ней
- Проверяем статус нашего запроса в общем репозитории группы
- Если кто-то запрашивает у Вас разрешение на внесение изменений в ваш репозиторий, то необходимо будет их проверить и принять или отклонить
- После того как ваши изменения были приняты, Вы можете видеть сообщение об этом.
Перед выполнение следующего задания
- После того как ваш Pull request был принят, можно приступать к след заданию
- Перед этим заберите последние изменения в ваш репозиторий на GitHub
- Перейти на вкладку Pull Requests
- Создаем новый реквест New pull request
- Пишет, что нечего сравнивать, но не расстраиваемся и жмем switching the base
- Появились отличия родительского и форкнутого проектов. Жмем Create pull request и даем ему название
- Автоматически оказываемся в этом пул реквесте и жмем Merge pull request
- И напоследок Confirm merge
- После заберите изменения в ваш локальный репозиторий
git pull