If I am working on a program alone, I just zip entire program folder once in a while. I keep only latest 2-3 files so my disk isn't cluttered.
So for example I would have 2 files: test-project-2015-02-03.zip test-project-2015-01-31.zip
Obviously it's not worth ziping files every 5 minutes, when some feature is done I zip it. Also I am not branching. That way I don't waste too much time on backup. I need backup very rarely and when I need it I don't have a clutter of 1000s of options, I just have 2 to restore from.
I am just learning github and I am amazed at complexity and clutter that it produces in recommended workflow. I can imagine it has to be like that for projects where many developers are working on same time, but why are single programmers having such complicated workflow?
1) Why do you commit every 5 minutes? Why not commiting when something is worthy of commit, like once every 2-3 days?
2) Why do you "add to stage" and commit? (To be sarcastic why not make 4 more stages in between)
3) Why do you create branches? You are going to restore latest best version anyway. Why not just stop commiting every 5 minutes if you are doing something risky? Commit when "branch" is done.
I need to learn git one day, but I can't put it on list of priorities when I don't see any benefits. I hope answers to this question will change that.