- Основы работы с Git.
- Установленный Git на локальной машине (не обязательно Линукс, не обязательно на Виртуальной машине - т.е. где хотите).
Следуюшие разделы представлены как теория/примеры, по ним могут быть вопросы, но не нужно их писать в отчет!!!
- Введение
- Работа с ветками
- Работа с удаленным репозиторием
- Моделирование конфликта
- Разрешение конфликта
Разделы "Задание 1" и "Задание 2" в отчет уже включаем!!!
-
Создание репозитория на GitHub:
Зайдите в свою учетную запись GitHub и создайте новый репозиторий, например, с именем git-practice. Скопируйте URL вашего репозитория.
-
Клонирование репозитория:
Откройте терминал и перейдите в папку, где вы хотите сохранить локальную копию репозитория. Введите следующие команды, используя скопированный URL:
git clone <URL-репозитория> cd git-lab
-
Добавление файла:
Создайте новый текстовый файл, например, example.txt, и добавьте в него какой-то текст, например, структуру книги (главы, параграфы и т.п.) Вернитесь в терминал и введите:
git add example.txt git commit -m "File added example.txt" git push origin main
-
Создание ветки:
Создайте новую ветку с названием, например,
feature-branch
, и переключитесь на нее:git branch feature-branch git checkout feature-branch
-
Отредактируйте файл example.txt, добавив еще текст.
Повторите шаги, указанные в п. 3. Имя коммита должно отличаться!
-
Слияние изменений:
Переключитесь обратно в основную ветку:
git checkout main
Слейте изменения из ветки
feature-branch
в основную ветку:git merge feature-branch git push origin main
-
Завершение:
Проверьте, что изменения успешно слиты и отображаются в основной ветке на GitHub. Завершите работу с репозиторием.
- Создайте новый текстовый файл с базовой структурой книги, например:
# Название книги
## Глава 1: Введение
Здесь будет введение в тему книги.
## Глава 2: Основы Git
Основные понятия и команды Git.
- Создайте ветку "feature-login" для разработки новой функциональности:
git checkout -b feature-login
- Внесите изменения в файл:
# Название книги
## Глава 1: Введение
Здесь будет введение в тему книги.
## Глава 2: Основы Git
Основные понятия и команды Git.
## Глава 3: Вход в систему
Раздел по новой функциональности входа в систему.
- Завершите изменения, закоммитьте их и отправьте ветку на GitHub:
git add README.md
git commit -m "Добавлена глава 3: Вход в систему"
git push origin feature-login
- Переключитесь на основную ветку (main) и внесите изменения:
git checkout main
- Внесите изменения в основной ветке (например, добавьте описание книги):
# Название книги: Приключения в мире Git
## Глава 1: Введение
Здесь будет введение в удивительный мир Git.
## Глава 2: Основы Git
Основные понятия и команды Git.
- Закоммитьте изменения и отправьте их на GitHub:
git add <filename>
git commit -m "Изменено название книги и введение"
git push origin main
- Вернитесь в ветку "feature-login" и внесите изменения в том же участке:
git checkout feature-login
- Измените главу 2 в файле
# Название книги: Приключения в мире Git
## Глава 1: Введение
Здесь будет введение в удивительный мир Git.
## Глава 2: Основы Git и магия конфликтов
Основные понятия и команды Git, а также волшебство разрешения конфликтов.
- Закоммитьте изменения и отправьте их на GitHub:
git add README.md
git commit -m "Добавлен раздел о магии конфликтов"
git push origin feature-login
- Вернитесь в основную ветку и попробуйте слить изменения:
git checkout main
git pull origin main
- Возникнет конфликт. Разрешите его в файле
# Название книги: Приключения в мире Git
## Глава 1: Введение
Здесь будет введение в удивительный мир Git.
<<<<<<< HEAD
## Глава 2: Основы Git и магия конфликтов
Основные понятия и команды Git, а также волшебство разрешения конфликтов.
=======
## Глава 2: Основы Git
Основные понятия и команды Git.
>>>>>>> feature-login
- Разрешите конфликт, удалив метки и оставив нужные изменения:
# Название книги: Приключения в мире Git
## Глава 1: Введение
Здесь будет введение в удивительный мир Git.
## Глава 2: Основы Git и магия конфликтов
Основные понятия и команды Git, а также волшебство разрешения конфликтов.
- Закоммитьте разрешение конфликта и отправьте изменения на GitHub:
git add README.md
git commit -m "Resolved conflict in chapter 2"
git push origin main
Предположим, у вас есть задача автоматизировать проверку формата файлов при коммите с использованием Git Hooks.
Перед каждым коммитом необходимо автоматически проверять, чтобы все .txt файлы в репозитории соответствовали определенному формату.
Создайте bash-скрипт, который будет выполнять проверку того, что коммитится файл формата .txt и в файле присутствует какой-то текст (например, в конце файла есть подпись автора, неважно как она выглядит, главное чтобы была какая-нибудь проверка содержимого файла). Далее поместите этот скрипт в нужную папку и проверьте, что перед каждым коммитом проходит проверка, например, добавьте вывод о результате проверки в консоль. За этот функционал отвечает Git Hooks, там сказазно как автоматизировать такую проверку.
Предположим, у вас есть задача на создание новой функциональности для вашего проекта с использованием Git Flow. Давайте рассмотрим конкретный пример. В примере важен не сам проект и его код (его тут вообще как такового нет), а принцип работы Git Flow.
- Убедитесь, что Git Flow установлен на локальной машине:
sudo apt-get install git-flow
- В корне репозитория выполните инициализацию Git Flow.
git flow init
- Создайте ветку для новой функциональности, допустим она называется "task-management":
git flow feature start task-management
- Внесите изменения в код для добавления функционала управления задачами (например, в файл task_manager.py):
def create_task(title, description):
# Логика создания задачи
print(f"Создана новая задача: {title}")
Выполните коммит изменения по мере разработки:
git add task_manager.py
git commit -m "Добавлен функционал управления задачами"
- После завершения разработки функции завершите фичу и объедините ее с основной веткой:
git flow feature finish task-management
Git Flow автоматически переключится на ветку develop и выполнит слияние. Если есть конфликты, их нужно разрешить.
- Переключитесь на ветку "develop" и начните создание релиза:
git checkout develop
git flow release start v1.0.0
- Внесите изменения, связанные с релизом (например, обновите версию в файле version.txt):
echo "v1.0.0" > version.txt
git add version.txt
git commit -m "Обновлена версия для релиза v1.0.0"
- Завершите релиз и объедините его с ветками "develop" и "main":
git flow release finish v1.0.0
- Если в процессе использования выявлена критическая ошибка, создайте hotfix (у нас конечно же ошибки никакой не возникнет, но hotfix все равно создаем):
git flow hotfix start hotfix-1.0.1
- Внесите изменения для исправления ошибки и коммитите:
# Исправление ошибки
git add file_with_error.py
git commit -m "Исправлена критическая ошибка"
- Завершите hotfix и объедините его с ветками "develop" и "main":
git flow hotfix finish hotfix-1.0.1
- Завершение работы и отправка изменений на удаленный репозиторий. Отправьте изменения на удаленный репозиторий:
git push origin develop
git push origin main
Создать свой репозиторий из шаблона этого. Как это делается - "Use this template" -> "Create a new repository" и сделайте его public.
Находясь уже в своем репозитории - создайте новый файл формата .md и там оформляйте отчет. В отчете опишите все шаги которые вы делали, чтобы получить финальный результат работы.
Что вам нужно знать, чтобы успешно защитить работу:
Основные команды Git, как возникают и как решать конфликты, Git Hooks, Git Flow.