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

Приглашение в репозиторий

Будьте внимательны: приглашения в репозиторий истекают через 1 неделю (7 дней) после получения.

Если вы не приняли приглашение в репозиторий на github, и оно истекло, преподаватель вышлет повторное приглашение в срок до 2 недель с момента получения вашего письма на почту с просьбой отправить приглашение повторно. Письмо должно быть с указанной темой и соблюдением правил составления писем: Правила коммуникации.

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

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

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

Пошаговая инструкция по отправке работ на Github для чайников

Проверяйте 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

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

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

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

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

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

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

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

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

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

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

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

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

Если по каким-то причинам вы не смогли исправить предыдущий pull request, то в новом pull-request'е оставьте ссылку на предыдущий с указанием возникшей проблемы

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

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

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

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

git reset --hard <goodCommitId>

Затем необходимо удалить ветку в github репозитории и заново отправить ветку

git push origin <branch>

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

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

Это влечет за собой минус 1 балл к вашему итоговому рейтингу. Минус балл начисляется за каждый коммит! Например, если вы сделали 3 коммита в ветку main, то получаете минус 3 балла к рейтингу

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

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

Вы можете решить другой вариант лабораторной работы

«Другой вариант» - следующий после того, который решили изначально

Предварительно необходимо проинформировать преподавателя по электронной почте

После этого Вы можете создать новый пулл реквест с другим вариантом лабораторной работы.

В комментарии нового пулл реквеста укажите: какой вариант был до, дайте ссылку на предыдущий пулл реквест, укажите какой вариант в новом пулл реквесте.

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