Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the best way to handle configuration files with git?

Say my application has a configuration files in plain-text. They contain some sensitive information which is required to test the application in my dev environment. I use different OSes to access and work on my projects (win, mac, ... ).

I do not wish some of the information in the configuration files to make it to my public git repository. In best case I want the sensitive information to be replaced with placeholders and have the configuration files uploaded to the repository to keep track of their structure.


How would you approach the problem?

The hook itself wouldn't be much of a problem for me to write. I'm more interested how to tie it all together, possible directory structure, etc. I'm quite new to git.

like image 289
Maiku Mori Avatar asked Dec 03 '25 22:12

Maiku Mori


1 Answers

There's a convention followed in the Django world that you could use - there is a standard settings.py file that imports a local_settings module at the end if there is one available.

Have all your secret stuff in that local_settings.py file and add it to .gitignore so that it doesn't go to the repository. This way, people will know that they can add their own settings to local_settings.

For example,

settings.py:

DATABASE_USERNAME = 'your username here'
DATABASE_PASSWORD = 'your password here'

local_settings.py:

DATABASE_USERNAME = 'my top secret username'
DATABASE_PASSWORD = 'my top secret password'

The best part is that whatever you've defined in settings.py will get overridden by the same name in local_settings.py.

like image 192
Swaroop C H Avatar answered Dec 05 '25 15:12

Swaroop C H



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!