Решение, вроде, вполне очевидное - выносите все настройки в (конфигурационные) файлы, которые игнорируются git-ом. Делайте шаблоны этих файлов (оставляем в git), а в README проекта описываем процедуру их копирования в нужное место и "донастройки" (какие переменные нужно изменить, какие добавить/убрать и т.д.). На конкретной площадке (production, stage, test, dev, local etc) свои настройки, все логично
Еще как вариант - использование environment-переменных (переменных окружения), тогда файлы как таковые вообще не понадобятся. Но:
- их поведением часто сложно управлять, и, как следствие, сложно отлавливать ошибки при неверных значениях
- все равно их нужно где-то прописывать (bash-скрипты, .htaccess и т.д.), но теперь уже в разных местах
- все равно лучше задокументировать, хотя бы чтоб самому потом не забыть :)