📝 Задания

К оглавлению урока

⚡ Задания урока

  • Задание 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

  1. Форкнуть репозиторий git_team_work
  2. Клонировать форк
  3. Создать ветку для своей задачи: git checkout -b feature/ваше-имя
  4. Добавить созданные скрипты в репозиторий
  5. Запушить ветку: git push origin feature/ваше-имя
  6. Открыть Pull Request для обсуждения
  7. После слияния PR другого участника — актуализировать свою ветку: git rebase main