Обычной процедурой будет разработка программного обеспечения с использованием контроля версий. Когда у вас есть выпуск, который нужно перейти на тестовый или работающий сервер, вы должны развернуть код из репозитория на тестовый / работающий сервер.
Если вы используете GIT, то он должен быть только на вашем компьютере, так как GIT спроектирован как распределенная система контроля версий. Если вы использовали Subversion, то это вполне может находиться на сервере вдали от вашей машины. Однако в этом случае вы все равно развернетесь таким же образом.
Не принято добавлять изменения базы данных в систему управления версиями по разным причинам (об этом в другом вопросе говорится на SO)
Вам необходимо использовать GitHub, только если вы работаете с другими людьми или открываете свой код для широкого использования и загрузки. Однако другой причиной загрузки на GitHub может быть случай, если ваш локальный компьютер со всем кодом и хранилищем выйдет из строя и вы потеряли локальные копии, которые можно было оттуда восстановить. Однако я предполагаю, что вы делаете резервные копии?
Редактировать - дополнение
Существует бесплатная книга , которая имеет дело с git, но для решения ниже вы добавляете файл с именем gitignore и в него вы добавляете шаблоны файлов, которые вам не нужны в репозитории. поэтому у вас есть локальный файл конфигурации и удаленные файлы конфигурации на целевом сервере, но они не перезаписываются, поскольку ваши локальные файлы не находятся в хранилище