I have a file (config.php), that is already commited to Git repository, but I want to ignore locally, i.e. I want that file to remain in repository, but force Git to ignore
If the file is already in the repository, and hence the Index/Staging area, then an update to .gitignore won't change that situation - It would keep beinging committed.
To remove the file from the Index/Staging area use git rm <file>
.
Once a file is listed in the .gitignore you cannot change it.
So you could remove the file from the list in one commit, commit changes the next, then re-add the file to the ignore list in a 3rd commit afterwards.
What I usually do is split the file into two, one that is allowed and I can change, which includes the second file if it exists, then devs can make config changes in the ignored file optionally.
If the file is still displayed in the status, even though it is in the .gitignore, make sure it isn't already tracked.
git rm --cached config.php
If you just want to ignore it locally, you could also make it ignored by the git status:
git update-index --assume-unchanged config.php
As commented, do note that using --assume-unchanged
might cause unwanted data loss as git stash resets the "ignored" files to the state in upstream, undoing local changes, without a warning or saving.
Ignore checked in file:
git update-index --assume-unchanged file
To revert
git update-index --no-assume-unchanged file
Revert All
git update-index --really-refresh