database.yml and .gitignore

Hi,

For some reason git is not ignoring my database.yml file even though I have config/database.yml in my .gitignore file. Any suggestions as to what the problem might be and/or how I can fix it? It's causing major annoyances. Is there a way to remove the database.yml from the repo entirely?

Thanks!

If it got added to your git repo before you specified it in the ignore file, I think you have to remove it:

git rm config/database.yml git commit -a -m "Removed database.yml"

(maybe save a backup of your database.yml first :slight_smile:

Jeff

If it got added to your git repo before you specified it in the ignore file, I think you have to remove it:

git rm config/database.yml git commit -a -m "Removed database.yml"

(maybe save a backup of your database.yml first :slight_smile:

Jeff

What I do is rename database.yml to example_database.yml before the initial commit to git (and have config/database.yml in .gitignore. Then after the initial commit I copy example_database.yml back to database.yml, which will not be ignored.

Git will only ignore untracked files that are in .gitignore. If you are tracking changes to a file the .gitignore has no effect.

The reason I keep example_database.yml in Git is so that when the repository is cloned all I have to do is copy example_database.yml to database.yml and I'm ready to go in the clone.

Note: this way each developer can keep their database password in their own untracked copy of database.yml if a password is required. But, they won't have to recreate database.yml from scratch.

Oh! In fact I don't actually do any of that manually, but instead I use a simple Ruby script that I wrote (before discovering there are probably better ways to this, and now Rails Edge has a really cool new template system for doing this sort of thing).

If interested you can find the script here... http://github.com/robertwalker/git-a-rails-project/tree

See the README for usage and options.

Jeff Cohen wrote:

If it got added to your git repo before you specified it in the ignore file, I think you have to remove it:

git rm config/database.yml git commit -a -m "Removed database.yml"

(maybe save a backup of your database.yml first :slight_smile:

Jeff

Safer I think to:

# git status # git rm config/database.yml --cache

--cache should leave the actual file alone and just remove it from

Very helpful. Thanks guys!

# git status # git rm config/database.yml --cache

Notice: it's --cached, not --cache.