I am currently working on a small project, and I am working on getting it functional, but I question when exactly should I make commits. I usually just do it when I am done with working on it, but I know in practical projects often times commits are for one specific thing but given the project does not even work yet what exactly do I do.
Do atomic commits and get really good at interactive rebasing. I find it let’s me try various small efforts, including refactors, and still keep a relatively sane commit history.