к примеру: надо запилить фичу, для этого надо расширить какой-нить сервис, а для этого надо его слегка отрефакторить.
вот 1 комит - рефактор (вынесение метода или выделение класса) второй - расширение третий - добавление непосредственно фичи. когда комиты разделены и грамотно описаны то читать очень легко
допустим у меня есть проект который как пакет используется в других проектах при этом этот пакет-проект содержит свои require в композере и я хочу обновить там версию одного пакета с 5.7 до 5.9