git-2-homeworks

Репозиторий с домашними заданиями для курса GIT

View on GitHub

Домашнее задание к лекции «Командная работа в Git & GitHub»

Примерное время выполнения: 30 минут

Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу. Пожалуйста, не прикладывайте никакие файлы, в том числе на Google Диск или Яндекс.Диск.

Любые вопросы по решению задач задавайте в чате учебной группы.


Цели задания:

Научиться работать над командным проектом через Git & GitHub, а именно:

  1. Настраивать игнорирование части файлов при публикации проекта
  2. Откатывать изменения, внесенные другим участником
  3. Отправлять изменения в проект и решать конфликты во время слияния

Данная практика поможет вам прокачать базовые навыки командной работы в Git & GitHub. Это профессиональный стандарт в сфере IT, ведь большая часть разработки ведется именно в группе.

Чек-лист готовности к выполнению домашнему заданию:


Инструкция к заданию

Задача №1: Импорт существующего проекта

Вам предоставили исходники лендинга, но в виде zip-архива. Вам нужно перенести их в систему контроля версий Git и опубликовать на GitHub. Обратите внимание, что в архиве есть мусорные файлы и системные файлы (папка tmp, файлы, заканчивающиеся суффиксами _old, _backup, Thumbs.db и .DS_Store) и их нужно проигнорировать, так как в противном случае получится, что вы храните ненужные файлы.

  1. Скачайте по ссылке архив с проектом.
  2. Распакуйте из него папку Site For Import. В архиве также лежит скрытая папка __MACOSX, она не нужна для работы. Удалите эту папку с вашего компьютера.
  3. Создайте на базе папки Site For Import Git-репозиторий.
  4. Проигнорируйте подкаталог tmp/ и файлы, заканчивающиеся суффиксами _old, _backup. Любые символы можно заменить символом звёздочка *.
  5. Добейтесь чтобы также были проигнорированы файлы Thumbs.db и .DS_Store.
  6. При помощи команды git status убедитесь, что Git не видит ненужные файлы.
  7. Добавьте в индекс все файлы проекта, включая .gitignore. Создайте коммит изменений.
  8. Создайте отдельный репозиторий на GitHub.
  9. Свяжите ваш локальный репозиторий с только что созданным удалённым репозиторием. Используйте в качестве кодового слова для связи с удалённым репозиторием origin.
  10. Отправьте сделанные вами изменения на GitHub.

В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.

Задача №2: Откат изменений

Один из ваших коллег во время работы над сайтом допустил ряд ошибок и залил всё вместе с ошибками в репозиторий на GitHub. Вам нужно отменить его последний коммит и исправить ситуацию.

  1. Склонируйте Git-репозиторий по ссылке.
  2. Отмените один последний коммит в проекте при помощи команды git revert.
  3. Создайте отдельный репозиторий на GitHub.
  4. Свяжите ваш локальный репозиторий с только что созданным удалённым репозиторием. При связывании используйте кодовое слово target поскольку стандартное кодовое слово origin уже занято.
  5. Отправьте сделанные вами изменения на GitHub.

В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.

Задача №3: Конфликт при push’е

Вы с коллегой вдвоём работаете над одним проектом. Вы доделали свою часть работы и пытаетесь запушить изменения в удалённый репозиторий. Но оказалось, что коллега изменил тот же файл раньше вас и уже отправил свой коммит. Вам нужно забрать изменения из удалённого репозитория, разрешить конфликт и всё же отправить свою часть работы на GitHub.

  1. Сделайте форк репозитория по ссылке.
  2. Скачайте архив изменений. Распакуйте из него папку git-2-homeworks-fork.
  3. Свяжите локальный репозиторий из архива с форком репозитория из п.1.
  4. Выполните команду git push -u origin main, прочитайте сообщение об ошибке отправки изменений.
  5. Заберите актуальную версию данных из удалённого репозитория при помощи команды git pull origin main.
  6. Разрешите появившийся конфликт и отправьте сделанные вами изменения на GitHub.

В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.