=== Пошаговая инструкция по отправке работ на Github для чайников === ==== Предварительная подготовка ==== Данные шаги нужно сделать только один раз в самом начале: - Установить ''git''. Для Ubuntu делается так: ''sudo apt install git'' - Настроить git config (как указано здесь [[https://se.moevm.info/doku.php/courses:github_rules#%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%D1%82%D0%B5_git_config_%D0%BD%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0%D1%85_%D0%B2_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B5|Как настроить git config]]) - ''git config --local user.email '', где '''' -- почта, на которую **зарегистрирован github аккаунт** - ''git config --local user.name '', где '''' -- ваш **логин** (не ссылка) на github'е - Флаг ''--local'' задаёт конфиг **только для текущего репозитория**. Если вы хотите настроить конфиг для всей системы (и всех репозиториев), то необходимо использовать флаг ''--global'' - Создать ssh токен для работы с github: - [[https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent|Создание ssh токена]] - [[https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account|Добавление ssh токена в свой аккаунт]] ==== Шаги ==== - Войти в аккаунт на github и перейти в нужный репозиторий - СКопировать ссылку для скачивания {{:courses:programming:github_clone_repo.png?direct&600|}} - Открыть терминал и перейти в папку, куда будет скачан репозиторий: ''cd path/to/the/dir'' - Скачать репозиторий при помощи ''git'': ''git clone '', где '''' -- это скопированная ссылка из шага 2 - Открыть скачанный репозиторий. Папка называется также как и имя репозитория - Создать новую ветку для работы: ''git checkout -b <Фамилия>_<Имя>_<имя-работы>''. **Внимание**, если вы используете репозиторий повторно (например, хотите сдать уже вторую лабораторную работу), то перед созданием новой ветки необходимо переключится на основную ветку ''main'': ''git checkout main'' - Создать с **таким же** названием, как и ветка: ''mkdir <Фамилия>_<Имя>_<имя-работы>''. Внутри этой папки создать папку ''src'' - Скопировать файлы следующим образом: - Файлы с исходным кодом скопировать в ''<Фамилия>_<Имя>_<имя-работы>/src'' - Отчёт (если требуется) скопировать в ''<Фамилия>_<Имя>_<имя-работы>''. **Внимание**, отчёт должен называться аналогично ветке и папке: ''<Фамилия>_<Имя>_<имя-работы>.pdf'' - Добавить новую папку в git-индекс: ''git add <Фамилия>_<Имя>_<имя-работы>''. Если скопированы лишние файлы, то можно поотдельности добавлять файлы, например: ''git add <Фамилия>_<Имя>_<имя-работы>/src/main.c'' - Создать коммит. Сообщение должно содержать ваши Фамилию, Имя и название работы. Можно использовать имя ветки: ''git commit -m "<Фамилия>_<Имя>_<имя-работы>: lab done"'' - Отправить ветку на сервер github: ''git push origin <Фамилия>_<Имя>_<имя-работы>'' - Перейти в репозиторий на github'е и открыть вкладку "Pull requests" - Нажать кнопку "New pull request" - В пунтке "base" выбрать ветку ''main'', в пункте "compare" выбрать ''<Фамилия>_<Имя>_<имя-работы>'' - Нажать кнопку "Create pull request" - Указать в названии ''<Фамилия>_<Имя>_<имя-работы>'' ==== Пример ==== Пример будет показан для следующих данных: * Репозиторий ''moevm/pr-2024-4341'' * Фамилия: Иванов * Имя: Иван * Имя работы: ''lb3'' Копирование ссылки на репозиторий: {{:courses:programming:github_clone_repo.png?direct&600|}} cd education git clone git@github.com:moevm/pr-2024-4341.git cd pr-2024-4341 git checkout -b Ivanov_Ivan_lb3 mkdir Ivanov_Ivan_lb3 mkdir Ivanov_Ivan_lb3/src // Копирование файлов в папки git add Ivanov_Ivan_lb3 git commit -m "Ivanov_Ivan_lb3: lb3 done" git push origin Ivanov_Ivan_lb3