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

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

Git Лабораторна 67: Написання простих hook у .git/hooks

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

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

Тема: Власні локальні hooks pre-commit і pre-push

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

Meta: навчитися створювати прості локальні hooks які блокують небажані коміти або push.



Krok 1. Перейти у каталог hooks.

Komanda: cd ~/git_lab1/.git/hooks



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

Komanda: nano pre-commit



Krok 3. Написати простий скрипт який забороняє коміт якщо є слово WIP у повідомленні.

Poyasnennya: скрипт може читати файл з повідомленням коміту або використовувати параметри.



Krok 4. Зробити pre-commit виконуваним.

Komanda: chmod +x pre-commit



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

Komanda: cd ~/git_lab1



Krok 6. Спробувати зробити коміт з повідомленням де є WIP.

Komandi: echo "hook test" > hook67.txt; git add hook67.txt; git commit -m "WIP do not commit"

Poyasnennya: hook повинен заблокувати коміт.



Krok 7. Повторити коміт з коректним повідомленням.

Komanda: git commit -m "Hook test ok"



Krok 8. Створити pre-push hook який попереджає якщо ти пушиш у main без тегу релізу.

Poyasnennya: у скрипті можна перевірити цільову гілку і відмовити при push.



Krok 9. Зробити pre-push виконуваним і протестувати push у тестовий remote.



Krok 10. Mini zvit.

Zavdannya: опиши обмеження локальних hooks і чому їх не можна повністю використовувати як механізм безпеки у команді.