===== Пошаговая инструкция по отправке работ на Forgejo для чайников ===== ==== Предварительная подготовка ==== Данные шаги нужно сделать только один раз в самом начале: - Установить ''git''. Для Ubuntu делается так: ''sudo apt install git'' - Настроить git config (как указано здесь [[courses:git_rules#настройки_названия_аккаунта_в_конфигурации|1. Настройки названия аккаунта в конфигурации]]) - ''git config --local user.email '', где '''' -- почта, на которую **зарегистрирован forgejo аккаунт** - ''git config --local user.name '', где '''' -- **moevm логин** - Флаг ''--local'' задаёт конфиг **только для текущего репозитория**. Для настройки конфигурации для всей системы (**и всех репозиториев одновременно**) необходимо использовать флаг ''--global'' - Создать ssh токен для работы с forgejo: - [[https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent|Создание ssh токена (github версия)]] - [[https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account|Добавление ssh токена в свой аккаунт (github версия)]] ==== Шаги ==== - Войти в аккаунт на forgejo и перейти в нужный репозиторий - Скопировать ссылку для скачивания {{:courses:git_rules:git_moevm_repo_url.png?600|}} - Открыть терминал и перейти в папку, куда будет скачан репозиторий: ''cd path/to/the/dir'' - Скачать репозиторий при помощи ''git'': ''git clone '', где '''' -- это скопированная ссылка из шага 2 - Открыть скачанный репозиторий. Папка называется также как и имя репозитория - Создать новую ветку для работы: ''git switch -c <Фамилия>_<Имя>_<имя-работы>''. - **Внимание**, если при повторном использовании репозитория (например, если сдаётся уже вторая лабораторная работа), то перед созданием новой ветки необходимо переключиться на основную ветку ''main'': ''git switch main'' - Создать папку с **таким же** названием, как и ветка: ''mkdir <Фамилия>_<Имя>_<имя-работы>''. Внутри этой папки создать папку ''src'' - Скопировать файлы следующим образом: - Файлы с исходным кодом скопировать в ''<Фамилия>_<Имя>_<имя-работы>/src'' - Отчёт (//**если требуется**//) скопировать в ''<Фамилия>_<Имя>_<имя-работы>''. - **Внимание**, отчёт должен называться аналогично ветке и папке: ''<Фамилия>_<Имя>_<имя-работы>.pdf'' - Добавить новую папку в git-индекс: ''git add <Фамилия>_<Имя>_<имя-работы>''. Если скопированы лишние файлы в пункте 8, то можно по отдельности добавлять файлы, например: ''git add <Фамилия>_<Имя>_<имя-работы>/src/main.c'' - Создать коммит. Сообщение должно содержать Фамилию, Имя и название работы. Можно использовать имя ветки: ''git commit -m "<Фамилия>_<Имя>_<имя-работы>: lab done"'' - Отправить ветку в удаленный репозиторий: ''git push origin <Фамилия>_<Имя>_<имя-работы>'' - Перейти в репозиторий на forgejo и открыть вкладку "Pull requests" - Нажать кнопку "New pull request" - В пункте "merge into" выбрать ветку ''moevm:main'', в пункте "pull from" выбрать ''moevm:<Фамилия>_<Имя>_<имя-работы>'' - Нажать кнопку "Create pull request" - Указать в названии ''<Фамилия>_<Имя>_<имя-работы>'' ==== Пример ==== Пример будет показан для следующих данных: * Репозиторий ''moevm/pr-2024-4341'' * Фамилия: Иванов * Имя: Иван * Имя работы: ''lb3'' Копирование ссылки на репозиторий: {{:courses:git_rules:git_moevm_repo_url.png?600|}} cd education # Клонирование репозитория (пункты 1-5) git clone git@github.com:moevm/pr-2024-4341.git cd pr-2024-4341 # Создание ветки (пункт 6) git switch -c Ivanov_Ivan_lb3 # Создание папки (пункт 7) mkdir Ivanov_Ivan_lb3 mkdir Ivanov_Ivan_lb3/src # Копирование файлов в папку (пункт 8) cp ~/etu/programming/lb3/main.c Ivanov_Ivan_lb3/src/main.c # Добавление файлов (пункт 9) git add Ivanov_Ivan_lb3 # Создание коммита (пункт 10) git commit -m "Ivanov_Ivan_lb3: lb3 done" # Отправка ветки (пункт 11) git push origin Ivanov_Ivan_lb3