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.
gitignore file. It will just ignore the files that have already been committed to a Git repository but now we have added them to . gitignore . The command git status; is just to review the changes and could be dropped.
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]
Could you rather keep settings.py deleted permanently (both locally and on remote), and:
setting_remote
file for the remote sidesetting_local
file for the local side (ie with local specific settings)settings.py
file on checkout.That way, settings.py
is kept "private" (non-versioned). But the specific values for each environment are versioned, each set in its own file, without any merging issue.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With