I want to upload my app to github so I can share portions of it for feedback and help...but it contains information used for logging into other services and so forth.
<I found by far the easiest way to handle this is to just change your passwords and API keys. Far easier than scouring your repo and re-writing its history to expunge any sensitive data. Just changing your creds is a much more surefire way. Of course don't commit the new info.
If you want to keep your configs stored in the git repo you can use branching. First, make sure the sensitive information is removed from the repo's history. Then you go to your main branch (master) and create a new branch off it called heroku. You put your configs into the heroku branch and keep that branch local. You never push it to github. Whenever you want to deploy, you checkout the heroku branch, merge in the master changes and push to heroku.
On Heroku you can use config vars to store configuration information.
http://docs.heroku.com/config-vars
This will keep it out of your repository.