Содержание
Правила работы с репозиторием Github
Приглашение в репозиторий
Если вы не приняли приглашение в репозиторий на github, и оно истекло, преподаватель вышлет повторное приглашение в срок до 2 недель с момента получения вашего письма на почту с просьбой отправить приглашение повторно. Письмо должно быть с указанной темой и соблюдением правил составления писем: Правила коммуникации.
Мастер-классы по работе с 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
- В корневой папке репозитория должна быть папка с названием, совпадающим с названием пуллреквеста.
Обычные нарушения, за которые пуллреквест может быть закрыт преподавателем:
- Пуллреквест должен быть создан пользователем с гитхаб-логином, соответствующим имени и фамилии, которые указаны в названии пуллреквеста. В корне репозитория лежит файл 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 балла к рейтингу
Что делать, если я случайно смержил свой пулл реквест?
- Вы теряете баллы за пулл реквест и баллы за защиту смерженной лабораторной работы.
- Вы можете решить другой вариант лабораторной работы
- «Другой вариант» - следующий после того, который решили изначально
- Предварительно необходимо проинформировать преподавателя по электронной почте
- После этого Вы можете создать новый пулл реквест с другим вариантом лабораторной работы.
- В комментарии нового пулл реквеста укажите: какой вариант был до, дайте ссылку на предыдущий пулл реквест, укажите какой вариант в новом пулл реквесте.
- Если есть занятия по расписанию до дедлайна, вы можете защищать новый пулл реквест с другим вариантом лабораторной работы (защита регулируется правилами рейтинговой системы).