I has something similar to this on an internally hosted git repository (so I am not 100% sure it will fix your problem on github). "Git pull" worked fine, but "git push" gave me:
error: The requested URL returned error: 400 while accessing http://10.3.231.11/fisheye/git/myrep.git/info/refs
What worked for me was going into.git/config, and changing the url to include my username in the url:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = http://username@10.3.231.11/fisheye/git/myrep.git
It then asked for a password after the push command, then pushed the files successfully.