.gitignore именно для этого и создан. Каждый программист клонирует проект, затем вручную создает необходимый файл (копирует из какого-то места). Наличие имени файла в .gitignore гарантирует, что он не попадет в индекс.
Без изменения $_SESSION ничего не изменится самостоятельно. Чтобы узнать изменились ли данные в БД, необходимо сделать запрос. Как вариант можно было бы сделать хитрый триггер в MySQL, запускающий внешнюю программу или скрипт при изменении данных. Но это будет дороже. При каждом запросе дергайте данные пользователя и обновляйте $_SESSION. По-моему, это самый верный путь.
Вэб-сервер не передает этот заголовок в ваши скрипты. Обратитесь к саппорту, либо настройте отдачу заголовка самостоятельно, если имеете доступ к настройке.
Сталкивался с такой проблемой. Так пакостит винда. Если в нее не грузиться, то проблемы не будет. По крайней мере у меня было так. Гуглите в эту сторону, проблема не тривиальна, придется попотеть. К сожалению, точных ссылок и запросов не могу дать, лишь направление.