Как начать использовать Git в созданном проекте PhpStorm?
===========================================================

 У меня сейчас все работает в таком виде:  

1) На локальной машине под Windows 7 стоит PhpStrom.  

2) На сервере поднят Apache HTTP server. Там поднят собственно сайт.  

3) Я редактирую файл на локальной машине и автоматически их сразу же выгружаю на сервер.  
  

Хочу настроить СКВ, собственно Git. Уже установил Git на сервере и на локальной машине.  
  

Но теперь остался вопрос. Как мне быть, когда сохраняю правки в фалах. Они так же выгружаются на сервер. И у меня получается на сервере куча правленых файлов, которые находятся не в commit`е.   
  

Меня интересует, как делать commit на сервере из PhpStorm? Или делать правки, также само их сохранять на сервер, а когда готов сделать commit - то делать его на локальной машине, а потому push на сервер? Как будет правильно делать? Может есть толковая статья? 

 Самый простой вариант такой:  

1. Есть локальные файлы проекта. Если настраивается deployment (ftp), то файлы при правках льются на веб-сервер с проектом.  

2. Есть репозиторий рядом с локальными файлами, в него делаются коммиты.  
  

Посложнее, можно использовать сервер для хранения репозиториев (на самом деле копий локального репозитория, remote). Например, как писали выше, bitbucket. Или github, или gitlab. В этой модели сервер по прежнему ничего не знает, что у него git.  
  

И самый продвинутый вариант, когда на боевой веб-сервер тоже устанавливается git, и поднимается локальный веб-сервер. На локальном ведутся работы, происходят коммиты. И когда делается push (или pull-request и дальнейший merge) на сервер с git репозиториями (bitbucket), там может автоматически срабатывать заранее настроенный обработчик события - hook, который дернет определенный скрипт на боевом веб-сервере, который в свою очередь делает git pull origin master.  
  

В общем, если работа с проектом ведется в одиночку, и нужен контроль версия для себя - подойдет самый первый вариант.  
  

Если хочется резервную копию репозитория где-то вне машины (или работа ведется эпизодически на разных машинах), то можно подключить bitbucket и делать push\pull\fetch с ним.  
  

А если предполагается командная разработка, но нет технической возможности поднимать локальную копию проекта - то подходит второй вариант (мы часто работаем именно по такой схеме).  
  

И третий вариант - самый сложный, обычно используем на техподдержке, когда есть "наша" копия сайта и "боевая". Т.е. на боевую копию не попадает ничего, без полного тестирования на нашей. 

 правильнее наверное кодить локально, коммитить и потом пушить на сервер.  

не стоит разрабатывать прямо на сервере. 

 Вообще, конечно, в идеале сервер ничего не должен знать о системе контроля версий. Он должен получать некий готовый “пакет” (rpm/zip/tar) от Jenkins, например, который берет его из удаленного репозитория, например, на BitBucket/GitHub.