I am saving my work at night with a single commit for many files. I wonder if it would be better to commit for each file but this seems like a lot more work.
I have no problem with the way things are now but I plan to put my code on GitHub and I want it to be easy to understand.
I'm wondering what the rest of you who use git are doing. Also if you could kind of spell it out for me. I'm new to Git and I've been using TortoiseGit and gitk in Windows.
"Easy to understand" means also:
git bisect
(ie each commit should represent a change in a task, which compiles and add an evolution or a new feature, and not a "checkpoint commit", which would make thegit bisect
fails way too soon)See "understanding the Git workflow" for more: you need to differentiate:
So pay attention to the "fast-forward" merge that Git uses by default: don't forget to clean-up the history of branches you are about to merge that way into public branches.
When to commit and what to commit is an art, and there are no black-and-white rules. That being said, there are habits that are easier to understand than others.
In general, I think you should optimize your commits for understandability - if you go back and read the diff for the commit, can you figure out what you accomplished in the changes?
If you want to be more specific, here's a long list of what I think are do's and don'ts: