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.
You can tell git to completely ignore changes to tracked files without having to remove them. Use this command:
git update-index --assume-unchanged [FILENAME]
Then if you want to track the file later:
git update-index --no-assume-unchanged [FILENAME]