Committing configuration files
So, the scenario here is that you have a configuration file that you want to be committed so that you have a complete example to work from. The problem is that the completed file might have passwords in it that you don’t want committed to your git repository.
I found the objectively correct answer today. You commit a file with the example first…
My example config.json
file:
{
"my_api_endpoint": "http://apis.kevinja.com/v1/fakeapi/",
"api_username": "your_username",
"api_password": "changeme"
}
Then… you do some git magic:
git update-index --skip-worktree config.json
This tells git that you don’t want it monitoring this file anymore.
Now, you can change the file to your heart’s content:
{
"my_api_endpoint": "http://apis.kevinja.com/v1/fakeapi/",
"api_username": "kevinja",
"api_password": "My$uper$3cr1tPa$$w0rd"
}
…and git doesn’t care anymore.
➜ git status
On branch master
nothing to commit, working tree clean
You can always change your mind later:
git update-index --no-skip-worktree config.json