The problem here seems to be that you're working against git, not with it. Committing and branching should be things that you do casually in git, by making a big deal out of them you're limiting yourself and crippling git.
If you try to use a screwdriver like you use a hammer, you're always going to be disappointed.
If you try to use a screwdriver like you use a hammer, you're always going to be disappointed.