Найкращі практики
Атомарні коміти
Виділяй не пов'язані між собою зміни в окремі коміти, щоб кожен коміт був логічною одиницею роботи. Такий підхід допомагає розуміти історію змін і за потреби скасовувати їх.
Коміт атомарний тоді, коли його вже неможливо поділити на менші частини.
Погано
1a2b3c
2025-04-20 10:00Alex Shvets
Додано функціональність купонів (і виправлено посилання в шаблонах email-сповіщень) (а, і ще відрефакторено планувальник листів).
Добре
1a2b3c
2025-04-20 10:00Alex Shvets
Додано функціональність купонів.
9f5110
2025-04-20 11:00Alex Shvets
Виправлено посилання в шаблонах email-сповіщень.
bbc129
2025-04-20 11:15Alex Shvets
Відрефакторено планувальник листів.
Переваги
- Легше зрозуміти: атомарний коміт зосереджений на одній логічній зміні, тому іншим (і тобі в майбутньому) простіше зрозуміти призначення та вплив кожного коміту.
- Простіше налагодження: коли в код проникає помилка, атомарні коміти допомагають точно знайти коміт, який її спричинив, бо кожен коміт — самодостатня зміна.
- Краща командна робота: колегам простіше переглядати конкретні зміни й давати зауваження, бо кожен коміт присвячений одному завданню чи виправленню.
- Чистіша історія: з атомарними комітами історія проєкту залишається чистою й упорядкованою — нею легше рухатися й розуміти, як розвивався код.
- Простіше скасовувати зміни: якщо конкретну зміну треба скасувати, атомарні коміти дозволяють зробити це, не зачіпаючи інші, ніяк не пов'язані зміни, і ризик нових проблем мінімальний.
- Зручніший cherry-pick: атомарні коміти легше переносити між гілками через cherry-pick, бо кожен коміт — самодостатня одиниця роботи.
Підводні камені
Якщо перестаратися, атомарні коміти можуть вийти боком:
- Надмірне дроблення: якщо розбивати зміни занадто дрібно, вийде купа крихітних комітів, за якими важко стежити й міркувати про них.
- Втрата контексту: за маленькими ізольованими змінами може загубитися загальна картина всієї функції чи виправлення.
- Більше рутини: багато дрібних комітів — це додатковий час на коміти, пуші та, можливо, кілька окремих пулл реквестів.
- Складніші відкати: якщо функція складається з кількох атомарних комітів, а її треба скасувати, зробити це чисто буде важче.
- Гірша читабельність: повна історія однієї зміни може розтягтися на багато комітів, і іншим розробникам буде складніше зрозуміти її, читаючи історію.
Головне — знайти баланс: тримай коміти сфокусованими й легкими для сприйняття, але не настільки дрібними, щоб вони втрачали сенс і ускладнювали роботу. Ти прагнеш до логічних, самодостатніх комітів.
Ключові поняття
Найкращі практики
Команди Git
Основи
git initgit addgit commitgit helpГілки
git branchgit switchgit mergegit rebaseСтатус/історія
git statusgit loggit diffgit showgit blamegit reflogСкасування
git resetgit restoregit revertgit cleangit stashВіддалені репозиторії
git clonegit fetchgit pullgit pushgit remoteІнше
Файл .gitignoregit checkoutgit configgit taggit worktreeЧудова робота!
Усі статті Gitopedia відкрито!