"Otherwise, you will have to authenticate with Github each time you push a branch." It is possible to easily automate HTTP authentication in git by including the credentials on a .netrc file in your home directory. It should look something like: machine example.com login username_here password password_here Of course it's unfortunate that you have to have your password in plain text, but it works.
1) No password stored in plain text
2) Still secure without having to enter your password every time