Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to setup remote-specific .gitignores?

Is there a simple way to setup different .gitignore files for different remotes? I have a repository I push up to both Heroku and Github. I need database.yml for Heroku, but don't want some of the information to be pushed up to Github. So I need a different .gitignore file for each of the remotes.

I tried having two separate branches, one that ignores database.yml, and one that doesn't. The problem is that when I checkout the heroku branch and go back into my github branch, the entire database.yml file is gone.

Any tips?

like image 631
funkymunky Avatar asked Mar 16 '10 17:03

funkymunky


2 Answers

Do not put database information in database.yml. Instead, use Heroku environment variables.

like image 176
yfeldblum Avatar answered Oct 27 '22 10:10

yfeldblum


I don't know anything about the requirements for Heroku - hopefully Justice is right and you can simply avoid the problem. If you can't, or if someone else finds this who can't...

If you want the two remotes to be mirrors (have the same commits), they must by definition have the same files in those commits. So, you have two choices: have file-for-repo-B in all repositories, even if they don't need it, or use a slightly messy workflow with two branches: master and for-repo-B. The only difference between the two branches would be the commits touching file-for-repo-B; the branch for-repo-B would always merge from master (but never the other way around!). Now you just have a different branch checked out in repo B, and all is good.

like image 32
Cascabel Avatar answered Oct 27 '22 10:10

Cascabel