How do I .gitignore and delete an already committed file without affecting other working copies?

Viewed 7677

I have a bare repository and two working copies - one on my machine, the other on the server.
It turned out that I have to .gitignore a certain file that has to be specific for every machine. Let's call it 'settings.py'. This file is already committed.

I did put 'settings.py' in .gitignore to ignore it. When I now change the file on my machine git status still tells me

modified:  settings.py

I figured out that I have to remove settings.py like this:

git rm --cached settings.py

Then git add ., followed by git commit.

But when I now push this to the bare repo and pull it to the working copy on the server, settings.py is deleted there - which is bad because I have to keep this specific settings.py.

I figured that I just could make a copy of settings.py and put it back in once it is deleted, but I feel like there has to be a better way of doing this.

2 Answers
Related