«Бог не меняет того, что (происходит) с людьми, пока они сами не изменят своих помыслов.» Коран, Сура 12:13

Спец курс (Автоматизация процесса проектирования)/Практические задания (Пример) — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
м (Выбираем проект над которым будем работать)
м
Строка 1: Строка 1:
 
{{BASH}}
 
{{BASH}}
 
== Регистрируемся на github.com ==
 
== Регистрируемся на github.com ==
[https://github.com/login https://github.com/login]
+
{{Info|[https://github.com/login https://github.com/login]}}
  
[[Файл:Github reg.png| шаг 1]]
+
[[Файл:Github reg.png|frame|center| Шаг 1]]
[[File:Github reg acc.png| шаг 2]]
+
[[File:Github reg acc.png|frame|center| Шаг 2]]
  
 
== Выбираем проект, над которым будем работать ==
 
== Выбираем проект, над которым будем работать ==
Строка 11: Строка 11:
  
 
== Логинимся на GitHub ==
 
== Логинимся на GitHub ==
Если еще не залогинились то  
+
Если еще не залогинились, то  
  
[[File:Github reg login.png]]
+
[[File:Github reg login.png|frame|center]]
  
 
== Создаем fork проекта ==
 
== Создаем fork проекта ==
 +
 
* Есть 2 способа ведения работы над проектом  
 
* Есть 2 способа ведения работы над проектом  
 
** Используя Ваш собственный репозиторий и общий пароль и права доступа к нему
 
** Используя Ваш собственный репозиторий и общий пароль и права доступа к нему
Строка 23: Строка 24:
 
# Заходим в проект https://github.com/vzaicev/bash
 
# Заходим в проект https://github.com/vzaicev/bash
 
# Делаем ответвление (fork) от проекта в свой репозиторий.  
 
# Делаем ответвление (fork) от проекта в свой репозиторий.  
[[File:Github reg fork.png]]
+
 
 +
[[File:Github reg fork.png|frame|center]]
  
 
* Получаем копию начального репозитория у себя
 
* Получаем копию начального репозитория у себя
Строка 31: Строка 33:
 
* Также вам станет доступно добавление файлов и директорий, и делать сабмиты под Вашим пользователем '''(5)'''
 
* Также вам станет доступно добавление файлов и директорий, и делать сабмиты под Вашим пользователем '''(5)'''
  
[[File:Github reg fork2.png]]
+
[[File:Github reg fork2.png|frame|center|800px]]
 +
 
 +
== Устанавливаем пакет для Cygwin для роботы с git ==
  
== Устанавливаем пакет для Cygwin для роботы с git ==
 
 
* Запускаем скачанный с сайта установщик [https://cygwin.com/install.html https://cygwin.com/install.html]
 
* Запускаем скачанный с сайта установщик [https://cygwin.com/install.html https://cygwin.com/install.html]
*{{ЖЛампа|24px}} {{Кр|'''Обязательно обращаем внимание на то чтобы путь не содержал русских букв и пробелов'''}}
+
*{{ЖЛампа|24px}} {{Кр|'''Обязательно обращаем внимание на то, чтобы путь не содержал русских букв и пробелов'''}}
  
[[File:Cygwin install.png]]
+
[[File:Cygwin install.png|frame|center]]
  
[[File:Cygwin install git.png]]
+
[[File:Cygwin install git.png|frame|center]]
  
 
== Загружаем свой репозиторий на локальную машину ==
 
== Загружаем свой репозиторий на локальную машину ==
 +
 
* Запускам терминал и создаем рабочую директорию  
 
* Запускам терминал и создаем рабочую директорию  
  
Строка 47: Строка 51:
 
  cd name_of_dir
 
  cd name_of_dir
  
[[File:Mkdir for git.png]]
+
[[File:Mkdir for git.png|frame|center]]
  
 
* Копируем адрес нашего форкнутого репозитория  
 
* Копируем адрес нашего форкнутого репозитория  
  
[[File:Clone to loc.png]]
+
[[File:Clone to loc.png|frame|center]]
  
 
* Извлекаем репозиторий на локальную машину
 
* Извлекаем репозиторий на локальную машину
Строка 57: Строка 61:
 
  git clone https://github.com/zaicevvs/bash.git
 
  git clone https://github.com/zaicevvs/bash.git
  
[[File:Clone to loc cmd.png]]
+
[[File:Clone to loc cmd.png|frame|center]]
  
 
* Теперь в нашем локальной директории есть копия всего проекта.  
 
* Теперь в нашем локальной директории есть копия всего проекта.  
  
[[File:Cd to work.png]]
+
[[File:Cd to work.png|frame|center]]
  
 
* Переходим в свежесозданную папку репозитория и настраиваем его
 
* Переходим в свежесозданную папку репозитория и настраиваем его
** Указываем имя пользователя (то что использовали при регистрации на Github)
+
** Указываем имя пользователя (то, что использовали при регистрации на Github)
** Указываем почтовый адрес   (то что использовали при регистрации на Github)
+
** Указываем адрес электронной почты (тот, что использовали при регистрации на Github)
 
  git config user.name zaicevvs
 
  git config user.name zaicevvs
 
  git config user.email zaicevvs@ex.com
 
  git config user.email zaicevvs@ex.com
  
[[file:Config_git.png]]
+
[[file:Config_git.png|frame|center]]
  
 
== Выполняем практическое задание ==
 
== Выполняем практическое задание ==
 
* Результатом задания будет скрипт
 
* Результатом задания будет скрипт
 
* Скрипт должен содержать, ключ который позволит вывести в задание  
 
* Скрипт должен содержать, ключ который позволит вывести в задание  
** Название ключа -task
+
** Название ключа <tt>-task</tt>
 
** Ключ может идти не обязательно первым
 
** Ключ может идти не обязательно первым
 
** Сообщение должно идти первым и отображать задание
 
** Сообщение должно идти первым и отображать задание
 
** После задания должны следовать 2 пустые строки  
 
** После задания должны следовать 2 пустые строки  
 
** Далее результат выполнения скрипта
 
** Далее результат выполнения скрипта
** В случае если ключ не задан то результат выполнения идет сразу без дополнительных пустых строк
+
** В случае, если ключ не задан, то результат выполнения идет сразу без дополнительных пустых строк
* Скрипт должен иметь название следующего формата lab<XX>_z<YY>.sh
+
* Скрипт должен иметь название следующего формата lab<XX>_z<YY>.sh, где
** XX номеру лабораторной  
+
** XX – номер лабораторной  
** YY номер задачи или имя дополнительного скрипта необходимого для выполнения задачи
+
** YY номер задачи или имя дополнительного скрипта, необходимого для выполнения задачи
 
** файл должен иметь расширение '''*.sh'''
 
** файл должен иметь расширение '''*.sh'''
** Файл должен иметь права доступа 755 (chmod 755 lab01_z1.sh)
+
** Файл должен иметь права доступа 755 (команда установки прав доступа: <tt>chmod 755 lab01_z1.sh</tt>)
** Если в лабораторной нет подзадач то в названии допускается отсутствие _z<YY>  (например : lab01.sh)
+
** Если в лабораторной нет подзадач, то в названии допускается отсутствие _z<YY>  (например: <tt>lab01.sh</tt>)
  
[[File:Bash Lab1 z1.png]]
+
[[File:Bash Lab1 z1.png|frame|center]]
  
 
== Добавление изменений в локальный репозиторий ==
 
== Добавление изменений в локальный репозиторий ==
 +
 
* После того, как скрипт написан можно его добавить в локальный репозиторий ('''закомитить''')
 
* После того, как скрипт написан можно его добавить в локальный репозиторий ('''закомитить''')
** '''git status'''. Воспользовавшись командой git status можно узнать, на какой ветке (branch) репозитория вы сейчас находитесь, какие изменения присутствуют в вашей рабочей копии и другую информацию.
+
** '''git status'''. Воспользовавшись командой git status можно узнать, на какой ветке (branch) репозитория Вы сейчас находитесь, какие изменения присутствуют в Вашей рабочей копии и другую информацию.
Рабочей копией называется совокупность файлов в локальной папке репозитория за исключением служебных файлов.
+
''Рабочей копией'' называется совокупность файлов в локальной папке репозитория за исключением служебных файлов.
** '''git add %file_path%''' Подготавливаем файлы к добавлению  
+
** '''git add %file_path%''' Подготавливаем файлы к добавлению  
** '''git commit -m "%commit_message%"''' Сохранияем файлы в репозиториию. Использование команды без аргументов откроет текстовый редактор, где надо будет написать комментарий для коммита, коммит обязательно должен иметь комментарий. Другим вариантом задания комментария к коммиту является использование команды  
+
** '''git commit -m "%commit_message%"''' – Сохраняем файлы в репозиторий. Использование команды без аргументов откроет текстовый редактор, где надо будет написать комментарий для коммита, коммит обязательно должен иметь комментарий. Другим вариантом задания комментария к коммиту является использование команды  
 
** Историю изменений можно посмотреть командой '''git log''' или '''git log --name-only'''. Если вся история изменений не умещается на экране, то можно пользоваться клавишами прокрутки на клавиатуре ("стрелочки", PgUp, PgDown), выход из режима просмотра изменений осуществляется нажатием клавиши "q".
 
** Историю изменений можно посмотреть командой '''git log''' или '''git log --name-only'''. Если вся история изменений не умещается на экране, то можно пользоваться клавишами прокрутки на клавиатуре ("стрелочки", PgUp, PgDown), выход из режима просмотра изменений осуществляется нажатием клавиши "q".
[[File:Commit git.png]]
+
 
 +
[[File:Commit git.png|frame|center]]
  
 
== Отправка изменений на GitHub репозиторий ==
 
== Отправка изменений на GitHub репозиторий ==
 +
 
* Далее отправим изменения на GitHub сервер  
 
* Далее отправим изменения на GitHub сервер  
 
  git push origin master
 
  git push origin master
Строка 104: Строка 111:
 
** {{Карандаш|24px}}При вводе из командной строки текст отображаться не будет, он скрыт, но он подставляется, так что продолжайте вводить.
 
** {{Карандаш|24px}}При вводе из командной строки текст отображаться не будет, он скрыт, но он подставляется, так что продолжайте вводить.
  
[[File:Push git.png]]
+
[[File:Push git.png|frame|center]]
  
* Если выполнение команды произошло ошибкой значит на серере ктото изменил этот файл. Чтобы решить эту проблему нужно забрать последние изменения с вервера к себе и обьеденить их с локальными правками.  
+
* Если выполнение команды произошло с ошибкой, значит на сервере кто-то изменил этот файл. Чтобы решить эту проблему нужно забрать последние изменения с сервера к себе и объединить их с локальными правками.
 +
 
  git pull
 
  git pull
  
 
* После чего можно повторить команду отправки снова.
 
* После чего можно повторить команду отправки снова.
* Если выполнение прошло успешно то можно посмотреть статус на GitHub.
+
* Если выполнение прошло успешно, то можно посмотреть статус на GitHub.
  
[[File:Status on web git.png]]
+
[[File:Status on web git.png|frame|center]]
  
 
== Отправка результатов в общий репозиторий для проверки преподавателем ==
 
== Отправка результатов в общий репозиторий для проверки преподавателем ==
* Для отправки ваших изменений в общий репозиторий вашей группы нужно сделать pull запрос
+
 
 +
* Для отправки ваших изменений в общий репозиторий Вашей группы нужно сделать pull запрос
 
* Выполним такой запрос из Web на GitHub.
 
* Выполним такой запрос из Web на GitHub.
 
** Переходим во вкладку '''Pull request'''  
 
** Переходим во вкладку '''Pull request'''  
 
** Нажимаем кнопку '''New pull request'''
 
** Нажимаем кнопку '''New pull request'''
  
[[File:Pull to common rep.png]]
+
[[File:Pull to common rep.png|frame|center]]
  
 
* Далее мы увидим статус нашего запроса
 
* Далее мы увидим статус нашего запроса
Строка 128: Строка 137:
 
* Нажимаем кнопку '''Create pull request''' (номер 4! на рисунке ниже)
 
* Нажимаем кнопку '''Create pull request''' (номер 4! на рисунке ниже)
  
[[File:Pull to common merge rep.png]]
+
[[File:Pull to common merge rep.png|frame|center]]
  
 
* Добавляем описание для нашего запроса.  
 
* Добавляем описание для нашего запроса.  
Строка 134: Строка 143:
 
** Или об исправлениях сделанных в ней
 
** Или об исправлениях сделанных в ней
  
[[File:Description pull to common merge rep.png]]
+
[[File:Description pull to common merge rep.png|frame|center]]
  
 
* Проверяем статус нашего запроса в общем репозитории группы
 
* Проверяем статус нашего запроса в общем репозитории группы
  
[[[File:Status pull to common merge rep.png]]
+
[[[File:Status pull to common merge rep.png|frame|center]]
  
* Если кто-то запрашивает у вас разрешение на внесение изменений в ваш репозиторий то необходимо будет их проверить и принять или отклонить
+
* Если кто-то запрашивает у Вас разрешение на внесение изменений в ваш репозиторий, то необходимо будет их проверить и принять или отклонить
  
[[File:Accept pull request.png]]
+
[[File:Accept pull request.png|frame|center]]
  
* После того как ваши изменения были приняты вы можете видеть сообщение об этом.
+
* После того как ваши изменения были приняты, Вы можете видеть сообщение об этом.
  
[[File:Check after accept request.png]]
+
[[File:Check after accept request.png|frame|center]]
  
 
== Далее в соответствии с заданиями ==
 
== Далее в соответствии с заданиями ==

Версия 23:54, 18 февраля 2018

Лекции SCRIPT

Лекции

Практические задания
Тесты

Табель успеваемости

Экзамен

Доп. материалы

Содержание

Регистрируемся на github.com

Информация

https://github.com/login

Шаг 1
Шаг 2

Выбираем проект, над которым будем работать

https://github.com/vzaicev/bash/tree/master/2018

  • В нашем случае это проект по выполнению лабораторных работ за 2018 год

Логинимся на GitHub

Если еще не залогинились, то

Github reg login.png

Создаем fork проекта

  • Есть 2 способа ведения работы над проектом
    • Используя Ваш собственный репозиторий и общий пароль и права доступа к нему
    • Используя чужой репозиторий, fork и push request для добавления изменений

Aqua pencil.png Мы будем использовать второй вариант (fork)

  1. Заходим в проект https://github.com/vzaicev/bash
  2. Делаем ответвление (fork) от проекта в свой репозиторий.
Github reg fork.png
  • Получаем копию начального репозитория у себя
  • Обратите внимание, что путь в браузере будет содержать ваш адрес и имя (1)
  • Также обратите внимание на то, что будет указано из какого проекта изначально была сделана ветка (2,3)
  • Счетчик форков будет показывать сколько ветвлений Вы сделали (4)
  • Также вам станет доступно добавление файлов и директорий, и делать сабмиты под Вашим пользователем (5)
Github reg fork2.png

Устанавливаем пакет для Cygwin для роботы с git

  • Запускаем скачанный с сайта установщик https://cygwin.com/install.html
  • Bombilla amarilla - yellow Edison lamp.png Обязательно обращаем внимание на то, чтобы путь не содержал русских букв и пробелов
Cygwin install.png
Cygwin install git.png

Загружаем свой репозиторий на локальную машину

  • Запускам терминал и создаем рабочую директорию
mkdir name_of_dir
cd name_of_dir
Mkdir for git.png
  • Копируем адрес нашего форкнутого репозитория
Clone to loc.png
  • Извлекаем репозиторий на локальную машину
git clone https://github.com/zaicevvs/bash.git
Clone to loc cmd.png
  • Теперь в нашем локальной директории есть копия всего проекта.
Cd to work.png
  • Переходим в свежесозданную папку репозитория и настраиваем его
    • Указываем имя пользователя (то, что использовали при регистрации на Github)
    • Указываем адрес электронной почты (тот, что использовали при регистрации на Github)
git config user.name zaicevvs
git config user.email zaicevvs@ex.com
Config git.png

Выполняем практическое задание

  • Результатом задания будет скрипт
  • Скрипт должен содержать, ключ который позволит вывести в задание
    • Название ключа -task
    • Ключ может идти не обязательно первым
    • Сообщение должно идти первым и отображать задание
    • После задания должны следовать 2 пустые строки
    • Далее результат выполнения скрипта
    • В случае, если ключ не задан, то результат выполнения идет сразу без дополнительных пустых строк
  • Скрипт должен иметь название следующего формата lab<XX>_z<YY>.sh, где
    • XX – номер лабораторной
    • YY – номер задачи или имя дополнительного скрипта, необходимого для выполнения задачи
    • файл должен иметь расширение *.sh
    • Файл должен иметь права доступа 755 (команда установки прав доступа: chmod 755 lab01_z1.sh)
    • Если в лабораторной нет подзадач, то в названии допускается отсутствие _z<YY> (например: lab01.sh)
Bash Lab1 z1.png

Добавление изменений в локальный репозиторий

  • После того, как скрипт написан можно его добавить в локальный репозиторий (закомитить)
    • git status. Воспользовавшись командой git status можно узнать, на какой ветке (branch) репозитория Вы сейчас находитесь, какие изменения присутствуют в Вашей рабочей копии и другую информацию.

Рабочей копией называется совокупность файлов в локальной папке репозитория за исключением служебных файлов.

    • git add %file_path% – Подготавливаем файлы к добавлению
    • git commit -m "%commit_message%" – Сохраняем файлы в репозиторий. Использование команды без аргументов откроет текстовый редактор, где надо будет написать комментарий для коммита, коммит обязательно должен иметь комментарий. Другим вариантом задания комментария к коммиту является использование команды
    • Историю изменений можно посмотреть командой git log или git log --name-only. Если вся история изменений не умещается на экране, то можно пользоваться клавишами прокрутки на клавиатуре ("стрелочки", PgUp, PgDown), выход из режима просмотра изменений осуществляется нажатием клавиши "q".
Commit git.png

Отправка изменений на GitHub репозиторий

  • Далее отправим изменения на GitHub сервер
git push origin master
  • При выполнении команда запросит логи и пароль к вашему репозиторию на GitHub.
    • Aqua pencil.pngПри вводе из командной строки текст отображаться не будет, он скрыт, но он подставляется, так что продолжайте вводить.
Push git.png
  • Если выполнение команды произошло с ошибкой, значит на сервере кто-то изменил этот файл. Чтобы решить эту проблему нужно забрать последние изменения с сервера к себе и объединить их с локальными правками.
git pull
  • После чего можно повторить команду отправки снова.
  • Если выполнение прошло успешно, то можно посмотреть статус на GitHub.
Status on web git.png

Отправка результатов в общий репозиторий для проверки преподавателем

  • Для отправки ваших изменений в общий репозиторий Вашей группы нужно сделать pull запрос
  • Выполним такой запрос из Web на GitHub.
    • Переходим во вкладку Pull request
    • Нажимаем кнопку New pull request
Pull to common rep.png
  • Далее мы увидим статус нашего запроса
    • Что и куда собираемся мержить
    • Можно ли его замержить автоматически или придется вручную решать какие части кода оставить
    • Содержимое файлов которые были добавлены или нуждаются в мержинге
  • Нажимаем кнопку Create pull request (номер 4! на рисунке ниже)
Pull to common merge rep.png
  • Добавляем описание для нашего запроса.
    • Описание может содержать сообщение о выполненной работе
    • Или об исправлениях сделанных в ней
Description pull to common merge rep.png
  • Проверяем статус нашего запроса в общем репозитории группы

[[[File:Status pull to common merge rep.png|frame|center]]

  • Если кто-то запрашивает у Вас разрешение на внесение изменений в ваш репозиторий, то необходимо будет их проверить и принять или отклонить
Accept pull request.png
  • После того как ваши изменения были приняты, Вы можете видеть сообщение об этом.
Check after accept request.png

Далее в соответствии с заданиями