📝 Задания
⚡ Задания урока
- Задание 1: Реализовать скрипт копирования файлов по расширению (по шагам из issue)
- Задание 2: Реализовать скрипт автоматического коммита (по шагам из issue)
- Командный workflow: запушить в репозиторий git_team_work, открыть PR, участвовать в merge + rebase
Подготовка: клонирование командного репозитория
# Форк репозитория на GitHub, затем клонировать
git clone https://github.com/it-career-hub/git_team_work.git
cd git_team_work
# Создать ветку для своей задачи
git checkout -b feature/your-name
Задание 1: скрипт копирования файлов по расширению
Реализовать скрипт copy_by_ext.sh по следующим issue:
Issue 1: Запросить исходную и целевую директории у пользователя
- Описание: Запросить у пользователя указание исходной и целевой директорий.
- Действие: Предложить пользователю ввести пути к исходной и целевой директориям.
Issue 2: Запросить расширение файлов для копирования
- Описание: Запросить у пользователя указание расширения файлов, которые нужно скопировать.
- Действие: Предложить пользователю ввести расширение файлов.
Issue 3: Проверить существование директорий
- Описание: Проверить, существуют ли и доступны ли исходная и целевая директории.
- Действие: Если не существуют — вывести сообщение об ошибке и выйти.
Issue 4: Найти файлы с указанным расширением
- Описание: Проверить, есть ли файлы с указанным расширением в исходной директории.
- Действие: Поиск файлов с указанным расширением. Если не найдены — вывести сообщение об ошибке.
Issue 5: Скопировать файлы
- Описание: Скопировать все файлы с указанным расширением из исходной директории в целевую.
- Действие: Копировать каждый файл, выводить сообщение о копировании.
Шаблон для начала работы:
#!/bin/bash
# Запрос исходной и целевой директории у пользователя
# Запрос расширения файлов, которые нужно скопировать
# Проверка существования исходной директории
# Проверка существования целевой директории
# Проверка, есть ли файлы с указанным расширением в исходной директории
# Копирование файлов с указанным расширением в целевую директорию
Задание 2: скрипт автоматического коммита
Реализовать скрипт auto_commit.sh по следующим issue:
Шаблон для начала работы:
#!/bin/bash
# Этап 1: Проверка текущей директории на наличие репозитория Git
# Этап 2: Добавление изменений в индекс
# Этап 3: Проверка наличия изменений для коммита
# Этап 4: Фиксация изменений и создание коммита
# Этап 5: Вывод сообщений об успешном выполнении или отсутствии изменений
Требования
- Если текущая директория не является Git-репозиторием — вывести сообщение и выйти
- Добавить все изменения через
git add . - Проверить наличие изменений через
git diff-index --quiet HEAD -- - Коммит с сообщением:
"Автоматический коммит $(date +'%Y-%m-%d %H:%M:%S')" - Вывести сообщение об успехе или об отсутствии изменений
Задание 3: командный Git-workflow
- Форкнуть репозиторий git_team_work
- Клонировать форк
- Создать ветку для своей задачи:
git checkout -b feature/ваше-имя - Добавить созданные скрипты в репозиторий
- Запушить ветку:
git push origin feature/ваше-имя - Открыть Pull Request для обсуждения
- После слияния PR другого участника — актуализировать свою ветку:
git rebase main