My public project (that others are going to clone and use) has a config file. Right now this config file is a template file on the remote repo, which means anyone who clones the project can easily configure it for themselves. However, while developing the project, I need to configure this file for my own system. Naturally I don't want these local configuration to be committed to the remote origin. How can I commit the changes of other files but ignore the changes of this particular config file?
I don't want to use .gitignore, since generally speaking this file should be tracked (I might need to add more configurations to the template later, or someone who forks the repo might).
I also don't want to use git checkout -- <filename> on the file or git reset HEAD <filename> since I want to keep my changes to the file.