Conditional .gitignore based on origin

I have an application that I want to host on Heroku. It has sensitive database information that I don’t want pushed into the public repo on github… However, I can’t add it to the gitignore file, because then it won’t get pushed to heroku.

Is it possible to have a conditional gitignore, where I ignore that YML file in origin, but not heroku?

  • When open-sourcing a live Rails app, is it dangerous to leave the session key secret in source control?
  • How to get an application to use a local branch version of Ruby on Rails
  • How to manage Rails database.yml
  • Deploy static assets only to a web server with separate app server
  • Reference is not a tree error while deploying with capistrano and git
  • Capistrano Deploy Permission Denied
  • In rails, what's the best way to deal with really large files (e.g. videos) that you do not want to commit to the repo and asset pipeline?
  • Unable to push 'heroku master'
  • 2 Solutions collect form web for “Conditional .gitignore based on origin”

    Unfortunately, no. Git doesn’t support that feature, so you are probably out of luck. There are various ways to get local-only ignore files in different repositories (.git/info/exclude), or on different machines (global ignore), but nothing on a per-origin basis.

    The easiest work-around might be to have a “public” branch that has that file deleted, and a pre-commit hook to ensure that the public branch never accepted a commit that added it.

    No assurances that won’t ever leak the blob to the public copy, however.

    You might want to look into Heroku db:push

    I’ve used that to synch data and you can still ignore all db info.

    Git Baby is a git and github fan, let's start git clone.