Правила работы с репозиторием Github

Мастер-классы по работе с git

Как создать свой первый пулл реквест

Как внести изменения в пулл реквест

Проверяйте git config на компьютерах в классе

Проверяйте настройки конфигурации, прежде чем делать Pull Request с компьютера в компьютерном классе на кафедре. Вам помогут три команды:

1. Просмотреть текущие настройки конфигурации

git config --list

-- в выводе этой команды обратите внимание на первые две строки: user.name и user.email -- там должны быть указаны ваши данные, которые можно добавить так:

2. Добавить свои данные в конфигурацию

git config --local user.email ivan@ivanov.com
git config --local user.name IvanIvanov

-- где ivan@ivanov.com -- это почта, с которой был зарегистрирован гитхаб аккаунт IvanIvanov

В чем разница между --global и --local самостоятельно прочитайте здесь

Если в компьютерном классе испльзовали флаг --global то повторите действия п. 2, чтобы следующий студент на этой машине не сделал свой пулл реквест в другой репо с вашими данными.

Именование ветки: <Фамилия>_<Имя>_<Вид и номер работы>

Пример именования ветки для студента Иванова Ивана, который хочет выполнить первую лабораторную работу:

Ivanov_Ivan_lb1

Вид работы может быть lb и cw для лабораторной и курсовой работы соответственно. Пожалуйста, учтите, что название lr или любое другое для лабораторной засчитано не будет.

Комменарий коммита должен быть осмысленным

Пример добавления комментария к коммиту (Ubuntu):

git commit -m "Ivanov LB1 done"

Каждая новая лабораторная/курсовая/контрольная работа должна находиться в своей ветке, которая обязательно должна быть создана из ветки main

Пример перехода на ветку main и создания + перехода в новую ветку Ivanov_Ivan_lr1 (Ubuntu):

git checkout main && git pull origin main
git checkout -b Ivanov_Ivan_lb1

Каждая лабораторная/курсовая/контрольная работа должна находиться в своей папке, которая должна называться также, как ветка

Пример создания папки (Ubuntu):

mkdir Ivanov_Ivan_lb1

Добавление файлов на Github должно происходить с помощью консоли

Пример добавления файлов, создания коммита и отправки коммитов на GitHub (Ubuntu):

git add Ivanov_Ivan_lb1/main.c
git commit -m "Ivanov_Ivan_lb1: done"
git push origin Ivanov_Ivan_lb1

В репозитории должен храниться только исходный код и отчёты к лабораторным

Не добавляйте никакие другие файлы в Ваш пуллреквест.

Файлы с исходным кодом должны находиться в папке src внутри вашей папки с лабораторной

Автоматическая проверка пуллреквестов. Лэйблы

Каждый открытый пуллреквест автоматически проверяется на соответствие правилам. В случае, если пуллреквест содержит нарушения, он закрывается с соответвующим комментарием и на него вешается лэйбл. Нарушения, за которые ваш пуллреквест будет автоматически закрыт:

Добавление и снятие лэйблов с пуллреквеста

Название (title) пулл-реквеста должно иметь формат: <Фамилия>_<Имя>_<Вид работы><Номер работы>

Все добавляемые/изменяемые/удаляемые файлы должны относиться к рабочей папке, вне нее ничего менять нельзя (в том числе удалять чужие рабочие папки, добавлять свои документы в корень репозитория)

Нельзя добавлять файлы с запрещенными расширениями. К запрещенным расширениям относятся .pyc, .o, .exe, .out

В вашей рабочей папке должен быть отчет в формате pdf (в дополнение может быть отчет в формате doc/docx/odt)

В корневой папке репозитория должна быть папка с названием, совпадающим с названием пуллреквеста.

Обычные нарушения, за которые пуллреквест может быть закрыт преподавателем:

Пуллреквест должен быть создан пользователем с гитхаб-логином, соответствующим имени и фамилии, которые указаны в названии пуллреквеста. В корне репозитория лежит файл README.md, в котором явно указаны имя, фамилия и github логин студентов. Все коммиты в пуллреквесте должны быть добавлены этим пользователем.

Сообщения всех добавленных в пуллреквесте коммитов должны содержать вашу фамилию и название работы, которую вы сделали.

Если проверка была начата, то она заканчивается одним из трех результатов:

всё хорошо (passed),

есть нарушения (failed),

есть нарушения, за которые пуллреквест закрыт (violated)

В любом из случаев в комментариях к пулл-реквесту будет написан результат, и на пулл-реквест будет установлен соответствующий лэйбл (passed, failed, violated). Пуллреквест считается корректным (т.е. за него можно получить баллы), если присутствует лэйбл passed и корректный отчет.

Что делать, если мой Pull Request был закрыт?

Нужно исправить причины, по которым был закрыт Ваш Pull Request, и нажать кнопку “Reopen”.

Нельзя создавать новый Pull Request при наличии уже существующего с метками преподавателя, метками проверяющей системы или комментариями преподаватя.

Опечатка в названии аккаунта в истории коммитов -- что делать?

Часто бывает так, что при настройке git config вы делаете опечатки в гитхаб аккаунте.

Любой неправильный символ приведет к тому, что система автоматической проверки распознает ваш пулл реквест как сделанный некорректно.

Чтобы исправить свою ошибку в истории коммитов, надо поступить следующим образом: найти последний коммит, сделанный вами через ваш правильный аккаунт и вернуться к нему. Команды представлены ниже:

git reset --hard <goodCommitId>

git push origin <branch>

Коммиты в ветку main

Запрещено делать любые коммиты в ветку main

Это влечет за собой минус 1 балл к вашему итоговому рейтингу.

Что делать, если я случайно смержил свой пулл реквест?

Если это произошло в срок до 19 октября 2023, то Вам следует: (1) удалить свою ветку; (2) создать пулл реквест заново; (3) в комментариях к новому пулл реквесту указать ссылку на первый пулл реквест (вы не теряете баллы).

Если это произошло после 19 октября 2023, то :

Вы теряете баллы за пулл реквест и баллы за защиту смерженной лабораторной работы.

Вы можете решить другой вариант лабораторной работы (следующий после того, который решили до этого, предварительно проинформируйте преподавателя по электронной почте). Вы можете создать новый пулл реквест с другим вариантом лабораторной работы. В комментарии нового пулл реквеста укажите: какой вариант был до, дайте ссылку на предыдущий пулл реквест, укажите какой вариант в новом пулл реквесте. Если есть занятия по расписанию до дедлайна, вы можете защищать новый пулл реквест с другим вариантом лабораторной работы (защита регулируется правилами рейтинговой системы).