Angular IDPStrong Junior
Модулі / Процес: Git, PR, CI / Цикл роботи
🔥 0

Модуль 9 · урок 4 з 9

Цикл роботи

Цикл роботи — послідовність команд, яку ти повторюватимеш щодня. За кілька тижнів вона стає рефлексом, але спочатку варто мати її перед очима: більшість проблем із Git беруться саме з порушення порядку.

Повний цикл

# 1. взяти свіжу основу
git switch main
git pull

# 2. створити гілку під задачу
git switch -c feature/12-status-filter

# 3. працювати, комітячи маленькими кроками
git add src/app/features/tasks/task-filters.ts
git commit -m "feat(tasks): add status filter control"

git add src/app/core/store/task.store.ts
git commit -m "feat(tasks): apply status filter in store"

# 4. підтягнути зміни з main, якщо гілка живе довго
git fetch origin
git rebase origin/main

# 5. відправити
git push -u origin feature/12-status-filter

# 6. створити PR, пройти рев'ю, вмерджити

# 7. прибрати за собою
git switch main
git pull
git branch -d feature/12-status-filter

Що комітити разом

Один коміт — одна завершена думка
  • Додав компонент фільтра з його стилями й шаблоном.
  • Підключив фільтр до стору.
  • Додав тест на фільтрацію.
  • Виправив назву поля в моделі й усі місця використання.
Так не варто
  • Один коміт на весь день роботи.
  • Коміт на кожне збереження файлу.
  • Рефакторинг і нова фіча в одному коміті.
  • git add -A без перегляду того, що потрапляє.
Перевіряй, що саме комітиш

git add -A зручний і небезпечний: разом із кодом легко відправити .env, тимчасові файли, папку з ключами. Звичка спершу глянути git status, а краще git diff --staged перед комітом — коштує пʼять секунд і рятує від видалення репозиторію заднім числом.

Виправити останній коміт

git commit --amend                      # змінити повідомлення або додати файли
git commit --amend --no-edit            # додати забутий файл, лишивши текст

Працює лише для того, що ще не відправлено. Після push зміна історії вимагатиме --force, а це вже інша розмова — про неї в уроці про конфлікти.

Тимчасово відкласти зміни

git stash                    # сховати незакомічені зміни
git stash list
git stash pop                # повернути й прибрати зі списку
git stash apply              # повернути, лишивши в списку

Класичний сценарій: ти посеред роботи, і тут терміново треба щось подивитись в іншій гілці. stash дозволяє перемкнутись, не роблячи коміт «wip».

Squash чи merge commit

SquashMerge commit
Що потрапляє в mainОдин коміт на весь PRУсі коміти гілки плюс коміт злиття
Історія mainПряма, один рядок на задачуПовна, з усіма кроками
Коли зручноГілка з проміжними «wip»-комітамиКоли кожен коміт осмислений
Пошук причини багаПростіше знайти PRПростіше знайти точний коміт

На більшості команд обирають squash: історія main лишається читабельною, а деталі при потребі знаходяться в PR. Але це командна домовленість — і саме таке питання варто поставити ліду на початку роботи.

Пʼять команд, які рятують

git status                   # що взагалі відбувається
git log --oneline -10        # останні коміти коротко
git diff                     # що змінено й не додано
git diff --staged            # що піде в коміт
git restore src/file.ts      # скасувати зміни у файлі
git restore --staged file.ts # прибрати з індексу, лишивши зміни

≈ 35 хв · +25 XP за урок