Чтобы расширить и уточнить то, что сказали другие: частые коммиты и гибкие нажатия не являются взаимоисключающими.
Вы действительно хотите планировать заранее и делать свои коммиты такими, чтобы вы могли адаптироваться.Это означает две вещи: вам нужно убедиться, что вы действительно часто делаете коммиты, и вам нужно часто переходить (как в git).Если ваши коммиты небольшие, вам будет легче реорганизовать их позже, если вам нужно будет выборочно сгруппировать часть вашей работы.И если ваши ветви хорошо организованы, возможно, у вас уже есть ветвь, и это именно то, что вы хотите нажать.
Сравните эти два:
One branch, few commits:
- A1 - B1 - C1 - B2 - A2 - B3 - C3 (master)
Many branches, many commits:
M1 - M2 (master)
/
o - A1 - A2 - A3 - A4 - A5 - A6 (topicA)
|\
| B1 - B2 - B3 - B4 - B5 - B6 - B7 (topicB)
\
C1 - C2 - C3 - C4 - C5 (topicC)
Теперь, если вы хотите выпуститьлюбая из этих трех тем, как есть, все, что вам нужно сделать, это объединить ее, чтобы освоить и подтолкнуть!Если вы хотите освободить половину темы A, и эта половина рассматривается в коммитах A1, A3, A4 и A6, все, что вам нужно сделать, это перебазировать топик A, чтобы поместить эти четыре коммита первыми, объединить последний из них с master,и нажмите.Остальная часть темы A (A2 и A5) может зависать для дальнейшей работы.
M1 - M2 ------------- X (master)
/ /
o - A1 - A3' - A4' - A6' - A2' - A5' (topicA)
(коммиты, обозначенные A1 ', ... потому что с git два коммита с одинаковым содержимым, но разные родителина самом деле разные коммиты.)