Домашнее задание к лекции «Командная работа в Git & GitHub»
Примерное время выполнения: 30 минут
Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу. Пожалуйста, не прикладывайте никакие файлы, в том числе на Google Диск или Яндекс.Диск.
Любые вопросы по решению задач задавайте в чате учебной группы.
Цели задания:
Научиться работать над командным проектом через Git & GitHub, а именно:
- Настраивать игнорирование части файлов при публикации проекта
- Откатывать изменения, внесенные другим участником
- Отправлять изменения в проект и решать конфликты во время слияния
Данная практика поможет вам прокачать базовые навыки командной работы в Git & GitHub. Это профессиональный стандарт в сфере IT, ведь большая часть разработки ведется именно в группе.
Чек-лист готовности к выполнению домашнему заданию:
- Установите Git на своем локальном компьютере
- Создайте профиль на GitHub
- Настройте SSH-ключ
- Просмотрите видео к занятию «Командная работа в Git & GitHub»
- Изучите презентацию к занятию «Командная работа в Git & GitHub»
Инструкция к заданию
Задача №1: Импорт существующего проекта
Вам предоставили исходники лендинга, но в виде zip-архива. Вам нужно перенести их в систему контроля версий Git и опубликовать на GitHub. Обратите внимание, что в архиве есть мусорные файлы и системные файлы (папка tmp
, файлы, заканчивающиеся суффиксами _old
, _backup
, Thumbs.db
и .DS_Store
) и их нужно проигнорировать, так как в противном случае получится, что вы храните ненужные файлы.
- Скачайте по ссылке архив с проектом.
- Распакуйте из него папку Site For Import.
В архиве также лежит скрытая папка
__MACOSX
, она не нужна для работы. Удалите эту папку с вашего компьютера. - Создайте на базе папки Site For Import Git-репозиторий.
- Проигнорируйте подкаталог
tmp/
и файлы, заканчивающиеся суффиксами_old
,_backup
. Любые символы можно заменить символом звёздочка*
. - Добейтесь чтобы также были проигнорированы файлы
Thumbs.db
и.DS_Store
. - При помощи команды
git status
убедитесь, что Git не видит ненужные файлы. - Добавьте в индекс все файлы проекта, включая
.gitignore
. Создайте коммит изменений. - Создайте отдельный репозиторий на GitHub.
- Свяжите ваш локальный репозиторий с только что созданным удалённым репозиторием. Используйте в качестве кодового слова для связи с удалённым репозиторием
origin
. - Отправьте сделанные вами изменения на GitHub.
В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.
Задача №2: Откат изменений
Один из ваших коллег во время работы над сайтом допустил ряд ошибок и залил всё вместе с ошибками в репозиторий на GitHub. Вам нужно отменить его последний коммит и исправить ситуацию.
- Склонируйте Git-репозиторий по ссылке.
- Отмените один последний коммит в проекте при помощи команды
git revert
. - Создайте отдельный репозиторий на GitHub.
- Свяжите ваш локальный репозиторий с только что созданным удалённым репозиторием. При связывании используйте кодовое слово
target
поскольку стандартное кодовое словоorigin
уже занято. - Отправьте сделанные вами изменения на GitHub.
В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.
Задача №3: Конфликт при push’е
Вы с коллегой вдвоём работаете над одним проектом. Вы доделали свою часть работы и пытаетесь запушить изменения в удалённый репозиторий. Но оказалось, что коллега изменил тот же файл раньше вас и уже отправил свой коммит. Вам нужно забрать изменения из удалённого репозитория, разрешить конфликт и всё же отправить свою часть работы на GitHub.
- Сделайте форк репозитория по ссылке.
- Скачайте архив изменений. Распакуйте из него папку git-2-homeworks-fork.
- Свяжите локальный репозиторий из архива с форком репозитория из п.1.
- Выполните команду
git push -u origin main
, прочитайте сообщение об ошибке отправки изменений. - Заберите актуальную версию данных из удалённого репозитория при помощи команды
git pull origin main
. - Разрешите появившийся конфликт и отправьте сделанные вами изменения на GitHub.
В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.