← До фільтрів та технологій

← До списку лабораторних по Git

Git Лабораторна 18: Створення простого pre-commit hook

Технологія: Git

Номер лабораторної: 18 · Рівень: middle

Тема: Git hooks: автоматизація перед комітом

Повний опис / сценарій лабораторної:

Мета: навчитися створювати простий pre-commit hook який блокує коміт при порушенні базових правил.



Крок 1. Перейти у директорію hooks.

Команда: cd ~/git_lab1/.git/hooks

Пояснення: тут зберігаються шаблони git hooks.



Крок 2. Створити файл pre-commit.

Команда: nano pre-commit

Пояснення: у цьому скрипті можна виконувати перевірки.



Крок 3. Додати простий код перевірки.

Приклад вмісту:

#!/usr/bin/env bash

if git diff --cached | grep "TODO" >/dev/null; then

  echo "Коміт заблоковано через TODO у змінених файлах"

  exit 1

fi

exit 0



Крок 4. Зробити файл виконуваним.

Команда: chmod +x pre-commit



Крок 5. Повернутися до кореня репозиторію.

Команда: cd ~/git_lab1



Крок 6. Додати рядок з TODO у будь який файл і закомітити.

Команди: echo "TODO: fix later" >> readme.txt; git add readme.txt; git commit -m "Test hook"

Пояснення: коміт має бути заблокований повідомленням hook.



Крок 7. Видалити або виправити TODO і повторити коміт.

Команди: sed -i "/TODO/d" readme.txt; git add readme.txt; git commit -m "Commit without TODO"

Пояснення: тепер pre-commit дозволить збереження змін.



Крок 8. Переглянути журнал.

Команда: git log --oneline -n 3

Пояснення: бачимо тільки успішний коміт без TODO.



Крок 9. Обговорити обмеження локальних hook у команді.

Пояснення: hooks не передаються автоматично разом з репозиторієм.



Крок 10. Міні звіт.

Завдання: опишіть які перевірки ви б додали у pre-commit для проєкту на Python або Node.js.