Это похоже на лечение симптомов, вместо профилактики болезни.
Самое простое и изящное решение - не хранить в репе с сырцами никакую auth-информацию.
Дисциплинировать разработчиков помогает использование фреймворков - там все конфиг-файлы жёстко регламентированы.
.gitignore и хуки - в качестве страховки.
Конфигами должны управлять другие инструменты - Config Management, которые в идеале отделены от Source Code Management.
Софт ставится через пакетный менеджер, пакет собирается с неизменным (gitignore) skeleton-конфигом.
Конфиги test/dev/production серверов никуда не уходят с серверов, т.к. лежат в другой папке файловой системы (/etc)
и версионируются в другую репу (в простейшем случае - etckeeper).
Таким образом, это единственно идеологически правильное решение - раздельное хранение и версионирование кода и конфигов.
Правила сборки пакетов, соответственно должны учитывать соответствие версии кода и версии конфига.
Это прямо во второй главе Continuous Delivery (за авторством Jez Humble и David Farley) написано:
___________________________________________________
Chapter 2 Configuration Management
Don’t Check Passwords into Source Control or Hard-Code Them
in Your Application
Operations staff will remove your eyes with a spoon if they catch you doing this.
Don’t give them the pleasure. If you must store your password somewhere other than the inside of your head, you could try putting them in your home directory in an encrypted form.
One egregious variation of this technique is to have the password for one layer of your application stored somewhere in the code or filesystem in the layer that accesses it. Passwords should always be entered by the user performing the deployment. There are several acceptable ways to handle authentication for a multilayer system. You could use certificates, a directory service, or a single sign-on system.
___________________________________________________