Version control database config without exposing passwords

I have a Rails app that I’m sharing via GitHub, but that I’m also
using on my website. It has some configuration options that I don’t
wish to share, but that I’d like version controlled. I’d also like to
make it difficult or impossible for me to accidentally push these
config changes up to GitHub.

What is the best practice or convention here?

The only option I could come up with (other than just not versioning
these files), is to keep them on a private branch that I never push to
GitHub.

Any other good ways to go about this?

Dave

The couple projects that I’ve seen do this put a standard database.yml
at database.yml.example (or similar) and keep their custom version
elsewhere. You could .gitignore it and then symlink it in with
Capistrano post-deploy, for instance.

–Matt J.