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

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

Git Лабораторна 58: Вибір кількох діапазонів комітів

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

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

Тема: Робота з range set у log та cherry-pick

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

Мета: навчитися формувати складні множини комітів з використанням кількох діапазонів у log та для cherry-pick.



Крок 1. Переглянути log з кількома гілками щоб знайти приклади розгалуження.

Команда: cd ~/git_lab1 && git log --oneline --graph --decorate -n 30



Крок 2. Визначити два діапазони комітів які потрібно аналізувати окремо.

Пояснення: наприклад feature-a..feature-b та hotfix..main.



Крок 3. Використати range set у log.

Команда: git log feature-a..feature-b hotfix..main --oneline

Пояснення: Git обʼєднає коміти з обох діапазонів.



Крок 4. Додати до range set виключення певного діапазону.

Команда: git log feature-a..feature-b ^hotfix --oneline

Пояснення: коміти з hotfix будуть виключені.



Крок 5. Створити список хешів з такого log і зберегти у файл.

Команда: git log feature-a..feature-b --format="%H" > range58.txt



Крок 6. У іншій гілці послідовно виконати cherry-pick для цих хешів.

Пояснення: можна написати невеликий скрипт який читає range58.txt і виконує cherry-pick.



Крок 7. Перевірити результати cherry-pick.

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



Крок 8. Відпрацювати випадок коли потрібно забрати лише частину комітів з діапазону.

Пояснення: відредагуйте range58.txt перед cherry-pick.



Крок 9. Продумати правила коли такий підхід має сенс, а коли краще зробити merge або rebase.



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

Завдання: поясніть на своєму прикладі як range set допомагає перенести кілька логічно повʼязаних комітів без зайвих змін.