Задания по программированию для студентов 110-ой группы набора 2023 года.
Каждый заводит себе директорию, название которой начинается с его фамилии. Например, IvanovIvan. В свои файлы создаете только в своей директории. Файлы в чужих директориях не изменяем! (Конечно, ничего страшного не случится даже если вы случайно удалите чужой файл, но НЕ ДЕЛАЕМ ЭТОГО). Все делаем внутри "своей" директории.
После некоторых начальных действий, которые нужно выполнить один раз, сценарий работы такой.
- Создаем в "своей" директории новую директорию для задачи. Пусть её имя X.
- Создаем там нужные файлы, решаем задачу, исправлем ошибки.
- Когда закончена логическая часть (либо вообще все), то добавляем измененные или созданные файлы в коммит (набор изменений). Команда
git add
. - Сохранем сделанные изменения командой
git commit
(можно считать, что add и commit - две части одного действия). - Отправляем коммит на сервер (только после этого я смогу его увиеть).
Бонус! Вы можете смотреть код своих одногруппников!
-
Регистрируемся на сайте github.com. Логин выбираете любой.
-
Присылаем мне свой логин. Логин нужен для того, чтобы выдать вам права.
-
Создаем SSH-ключ. Инструкция на английском языке для разных систем. https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
-
Добавляем его в свой профиль на github. https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account
В приведенных ниже командах в качестве примера используется имя Afonin_SA. Вам нужно заменить его на свой логин.
- Создаем на своем компьютере копию репозитария
Выполняем команду
cd
git clone [email protected]:sergadin/110-2023.git
В текущей директории должна появиться директория 110-2023
.
- "Представляемся".
Для корректного отображения вашей работы на сайте нужно указать свои данные. Выполняем следующие команды. Напишите свое реальное имя и адрес электронной почты!
git config --global user.email "ВАШ EMAIL адрес"
git config --global user.name "ВАШЕ ИМЯ"
Имя и адрес электронной почты указываются в кавычках.
- Создаем свою директорию
Например (замените Afonin_SA
на свой логин во всех командах!)
cd 110-2023
mkdir Afonin_SA
touch Afonin_SA/.gitkeep
- Сохраняем сделанное изменение
git add Afonin_SA
git commit -m "Добавлена директория для пользователя Afonin_SA" Afonin_SA
- Отправляем изменения не сервер github.com
git push
Если команда git push
выдает ошибку, то значит кто-то другой вас "опередил" со своими изменениями. В этом случае выполняем
git fetch
git rebase
и после этого повторяем git push
.
- Создаем директорию для задачи с номером
x.y
. ВместоAfonin_SA
подставляем название своей директории. Например, для задачи 1.12 выполняем команды вида
mkdir ~/110-2023/Afonin_SA/1.12
cd ~/2023-21-109/Afonin_SA/1.12
Теперь нашей текущей (или рабочей) директорией является 1.12
. Посмотреть название текущей директории можно командой pwd
(print working directory).
В директории для задачи (в нашем примере ~/110-2023/Afonin_SA/1.12
) создаем файлы так, как привыкли. Компилируем, запускаем и т.п.
- Сохраняем результаты (коммит)
git add ИМЕНА_ФАЙЛОВ
git commit -m "Решение задачи x.y"
Имена файлов указываются через пробел. Перечислять нужно только те файлы, которые вы написали (создали или изменили). Например, git add find_root.h find_root.c Makefile
.
Изменения, которые были внесены с момента последнего коммита, можно посмотреть командой
git status .
Если вы хотите посмотреть, что было изменено в конкретном файле, например, find_root.c, то нужно ввести команду
git diff find_root.c
Она показывает изменения по сравнению с предыдущим коммитом.
Комментарий (в примере выше это "Решение задачи x.y") должен кратко описывать то, что было сделано. "Исправлена ошибка...", "Улучшено форматирование" и т.п.
Коммитов может быть много. Сделали что-то логически законченное - выполнили commit. Система контроля версий git позволяет просматривать историю изменений и, при необходимости, "возвращаться" к старой версии. Это удобно, если внесенные исправления что-то случайно испортили.
- Отправляем результаты на сервер
git fetch
git rebase
git push
Первая команда скачивает на ваш компьютер чужие изменения (если кто-то успел выложить свое решение за то время, когда вы делали свое). Вторая - "применяет" эти изменения к вашей рабочей директории (у вас появятся чужие файлы). Третья команда передает ваши изменения на сервер.
- Пишем письмо с просьбой посмотреть решение
Если вы сделали какие-то изменения, которые не хотите сохранять, то всегда можно вернуться к последнему коммиту. Команда
git reset --hard
Например, случайно удалили файл. Внимание Эта команда отменит все исправления (во всех файлах!), которые вы делали с последнего коммита. Поэтому коммиты можно делать часто. Получилось что-то законченное (например, написали функцию) - сделали коммит.
Сначала читаем, как работать в Linux. Здесь аналогично, но программа другая. То, что в Linux делается командами, в этой программе делается нажатием на кнопки и через выпадающее меню.
-
Установить Github Desktop https://desktop.github.com/
-
File -> Clone repository Выбираем вкладку URL и вводим адрес
[email protected]:sergadin/110-2023.git
-
Заходим в директорию 110-2023 (в проводнике) Там, куда вы ее сохранили на предыдущем шаге.
-
Создаем "свою" директорию.
-
Переключаемся в Github Desktop Должны увидеть список изменений.
-
Вводим комментарий (внизу экрана) и нажимаем commit
-
Справа появится кнопка push