Add the ability to push to a branch in git

I noticed that the git push function only pushes to the remote's master. It makes sense that you would want to push from master, but in the case of multiple machines and a single private repo you need to choose where to push.

A great example of a use case that requires this is:
1. Machine A is the production server(s)
2. Machine B is a staging server
3. Need to easily update or cherry pick changes from machine B to machine A