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

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

Git Лабораторна 42: Обмін патчами без віддаленого репозиторію

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

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

Тема: git format-patch та git apply

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

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



Крок 1. Зробити кілька тестових комітів для патчів.

Команди: cd ~/git_lab1; echo "patch line 1" >> patch42.txt; git add patch42.txt; git commit -m "Patch step one"; echo "patch line 2" >> patch42.txt; git add patch42.txt; git commit -m "Patch step two"



Крок 2. Створити патчі для двох останніх комітів.

Команда: git format-patch -2

Пояснення: зʼявляться файли типу 0001-*.patch, 0002-*.patch.



Крок 3. Переглянути вміст одного патча.

Команда: less 0001-*.patch

Пояснення: патч містить заголовки email стилю та diff.



Крок 4. Створити новий клон для тесту застосування патчів.

Команда: cd ~ && git clone ~/git_lab1 git_lab1_patch_target && cd git_lab1_patch_target



Крок 5. Перевірити що останні два коміти відсутні у клоні.

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

Пояснення: у цільовому клоні історія коротша.



Крок 6. Скопіювати патч файли у каталог target.

Команда: cp ~/git_lab1/000*.patch .



Крок 7. Застосувати патчі через git apply.

Команда: git apply 0001-*.patch 0002-*.patch

Пояснення: зміни зʼявляться у робочому каталозі без комітів.



Крок 8. Закомітити застосовані зміни вручну.

Команди: git add patch42.txt; git commit -m "Apply patches manually"



Крок 9. Повторити процедуру але використати git am для автоматичного створення комітів.

Команда: git am 0001-*.patch 0002-*.patch

Пояснення: у окремому тестовому клоні буде відтворено коміти з оригіналу.



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

Завдання: опишіть де у реальних умовах ви можете використати format-patch та am замість push і pull.