На feature ветке коммиты на каждый чих (особенно если нет LocalHistory в IDE).
В мастер идет squash - одна feature один коммит. Возможны вариации на тему, если есть staging.
Пушить в свой форк, или отдельную feature ветку как минимум в конце рабочего дня. Страхуетесь на случай проблем с железом или ваших ошибок при перезаписи истории.
А вообще есть определенные методологии. Главное что важно понять - история в вашей локальной ветке очень легко переписывается, надо просто привыкнуть к набору действий чтобы код не потерять.