We should all be committing to the "master" branch unless you're working on some major new feature that is likely to break the codebase, in which case create a new branch for it, but merge it back into master when you're done. This should be rarely if ever done at this stage of development.
It's also important to commit and push frequently otherwise it can cause merge conflicts to occur (when two people edit the same piece of code). These conflicts aren't fun to resolve.
The codebase isn't currently in this style, but if we all commit to following the boy-scout rule ("always leave a campsite better than you found it"), then eventually we'll make progress towards it.