PhpStorm + Git.
Храним код в Bitbucket.
Основной вопрос, как я понял из обсуждения, крутится вокруг загрузки файлов на сервер.
Используем платный сервис
dploy.io.
В репозитории следующая структура веток -
- master - код, который находится в Production
- development - "буфер" между master и milstone для проверки на dev-сервере
- milestome-vX.Y.Z - Определенная стадия проекта
- feature-N - Определенная feature
Все изменения ведутся локально. и привязаны к одной feature-ветке. После того, как задание сделано, feature-ветка вливается в milestone-ветку (Повторяется N раз).
Когда нужно проверить набор коммитов на dev-сервере, пушим изменения из milestone-ветки в dev-ветку и они автоматически заливаются на dev-сервер (Если нет отдельного сервера или что-то еще не позволяет развернуть тестовое окружение, то можно работать и без этого шага).
После того, как убедились, что все нормально, вручную через web-интерфейс dploy.io заливаем master-ветку на production-сервер.