Мы рекомендуем использовать Ubuntu версии 20.04. Мы проверяем все задачи на этой версии операционной системы, и если вы будете использовать эту же версию локально, то вы избежите многих проблем с неправильной настройкой окружения. Мы компилируем всё с clang-11.
Система предназначена только для сдачи заданий. Любая замеченная попытка нарушить работу системы или обойти тесты (читинг) приведет к обнулению оценки за всю неделю.
К читингу приравниваются умышленные и неумышленные действия, которые привели к получению данных приватных тестов.
-
Создайте аккаунт на https://gitlab.cpp-hse.ru/. Если аккаунт уже есть и вы готовы решать с него задачи, новый создавать не надо.
-
Добавьте ssh-ключ в аккаунт:
- Сгенерируйте ssh ключ, если у вас его еще нет.
ssh-keygen -N "" -f ~/.ssh/id_rsa- Скопируйте содержимое файла id_rsa.pub (
cat ~/.ssh/id_rsa.pub) в https://gitlab.cpp-hse.ru/-/profile/keys - Проверьте, что ssh ключ работает. Выполните команду
ssh git@gitlab.cpp-hse.ru. Вы должны увидеть такое приветствие:
$ ssh git@gitlab.cpp-hse.ru PTY allocation request failed on channel 0 Welcome to GitLab, $USERNAME! Connection to gitlab.cpp-hse.ru closed. -
Зарегистрируйтесь на https://cpp-hse.ru. Секрет для регистрации выдаст семинарист. Для авторизации на сайте используйте подготовленный выше аккаунт GitLab.
-
Для вас создастся приватный репозиторий, ссылка на который доступна из сайта с дедлайнами (ссылка
My Repo). Имя репозитория будет иметь вид, аналогичныйpmi-221-1-Vasya-Pupkin-vpupkin. Проверьте, что вы имеете к нему доступ. В дальнейшем вам надо будет работать именно с вашим приватным репозиторием, а не с общим.
-
Склонируйте ваш приватный репозиторий. Ссылку для клонирования можно найти, нажав на синюю кнопку
Clone -> Clone with SSHв интерфейсе репозитория. Команда будет иметь видgit clone git@gitlab.cpp-hse.ru:2022-pilot/pmi-221-1-Vasya-Pupkin-vpupkin.gitКоманда
git cloneсоздаст директорию видаpmi-221-1-Vasya-Pupkin-vpupkinи запишет туда все файлы из этого репозитория. -
Настройте пользователя в git
git config --global user.name "Vasya Pupkin" git config --global user.email vasya@pupkin.ru
Чтобы сдать задачу task_name, надо сделать следующие шаги:
-
Перейти на ветку
main:git checkout main -
Создать ветку
submits/task_name. Имя ветки должно быть в точности таким (с учетом подстановки реального названия задачи вместоtask_name).git checkout -b submits/task_nameЕсли у вас уже была создана ветка
submits/task_name, вам не нужно переходить на веткуmainи создавать новую ветку. Достаточно переключиться на неё командойgit checkout submits/task_nameЕсли вы уже находитесь в ветке
submits/task_name, начинайте сразу с 3 пункта. -
Написать код решения задачи.
-
Найти измененные файлы
git status -
Добавить измененные файлы
file1,file2и т.д. в коммитgit add file1 file2 -
Закоммитить изменения. Старайтесь писать осмысленные сообщения к коммитам. Это поможет вам, когда вы захотите разобраться в истории своих изменений.
git commit -m "Describe your changes here" -
Запушить изменения в ваш приватный репозиторий
git push
Периодически мы будем обновлять общий репозиторий с задачами, в ваш приватный репозиторий новые задачи попадут автоматически. Чтобы скачать обновления в ваш локальный репозиторий нужно выполнить команды:
git checkout main # перейти на ветку main
git pull # получить изменения из вашего приватного репозитория в локальный