I have a Ruby on Rails application that I am trying to host on Heroku. I would also like to use a GitHub public (free) repository to track changes. I need to check-in a file con
As VonC mentioned, the best (and least error-prone) bet is to keep sensitive config info out of Git and put them in environment variables on your server. Here are instructions for how to do so on Heroku:
http://docs.heroku.com/config-vars
See also the linked questions.
What you could do is to add to the GitHub repo a smudge script (filter driver) which will:
Since that private branch would only exist on the Heroku repo, the smudge script wouldn't do anything on the GitHub repo side.
But once pushed to the Heroku side, if a hook is checkouting a working directory on he Heroku server, then that same filter driver will kicks in and generate the sensitive file.
That being said, it is best for such a sensitive file to never be versioned in any Git repo, but rather being stored elsewhere.
The smudge script, rather than testing some Git repo content (like a private branch) would then test for an external repo (a ssh ftp, a Nexus repo, any other data referential out there where you choosed to stored those private informations), extract the right content and generate the file.