Задание 1 — Создать и разрешить merge-конфликт
Попробуем мигрировать наши разрозненные репозитории в monorepo, тем самым проделав укрупнение.
Сначала отработаем создание и разрешение merge-конфликта:
- Создать новую директорию
git-merge-testи инициализировать репозиторий - Создать файл
merge.txt, добавить и закоммитить - Создать ветку
new_branch_to_merge_later, изменитьmerge.txt, закоммитить - Вернуться на main, тоже изменить
merge.txt, закоммитить - Выполнить
git merge new_branch_to_merge_later— получить конфликт - Использовать
git statusиgit log --mergeдля диагностики - Разрешить конфликт вручную (убрать маркеры)
- Выполнить
git add+git merge --continue
Задание 2 — Укрупнение репозиториев (monorepo)
Попробуем мигрировать наши разрозненные репозитории в monorepo, тем самым проделав укрупнение.
Структуру для укрупнения вы выбираете сами. Варианты:
- Один репозиторий для всего обучения (например,
linux-git-course) - Репозиторий по темам:
bash-scripts,git-workflow,linux-admin - Репозиторий по сессиям курса
Полезные инструменты для миграции:
find . -type d -name ".git" -exec rm -rf {} +
Перед выполнением: Эта команда удаляет директории .git рекурсивно. Сначала запустите без
-exec, чтобы увидеть что будет удалено:find . -type d -name ".git"
Задание 3 — Проверить укрупнённый репозиторий
Работая с укрупнённым репозиторием:
- Проработайте добавление новой директории с уроком или домашним заданием
- Обратите внимание на то, как работает git в директориях на разных уровнях
- Создайте новый проект при помощи Visual Studio Code и отправьте коммиты в новый укрупнённый репозиторий
Вопросы для закрепления
- Что такое merge-конфликт? Когда он возникает?
- Назовите виды merge-конфликтов
- Какие действия нужно выполнить для разрешения конфликта?
- Как избежать merge-конфликтов при работе в команде?
- Что такое monorepo? Назовите преимущества и недостатки
- Что произойдёт при выполнении
find . -type d -name ".git" -exec rm -rf {} +?