Я всегда делаю так:
- по фичи\багу\рефакторингу завожу таск, в котором описываю задачу;
- создаю ветку, делаю все, что нужно;
- каждый коммит сопровождаю следующим refs #< task_id >: <краткое описание внесенных изменений> (если в коммите вдруг поднялась рука затронуть несколько тасков, то refs #< task_id >, #< task_id >, но лучше так не делать);
- когда фича готова вливаю ее в основную ветку с сохранением истории коммитов;
- вношу изменения в таск трекере - описываю решение (что изменилось, что сделал, как сделал), закрываю таск.
Так я поступаю даже когда работаю один. Потом легко по номеру таска просматривать историю, узнавать к какому таску относились данные изменения и история не перегружена длинными историями "как я провел лето". Ну и бонус: таск трекеры умеют собирать информацию сформированную в некотором стандартизированном виде.