1. Коммитить на боевом - ну это ... хреновая затея в общем. Если действительно необходимо сделать подобное: делайте правку, дальше отдельным коммитом (НЕ из прода) ее проводите в репозиторий, а на боевом - удаляйте локальные изменения.
2.
Разрабатываем на тестовом - хотелось бы все изменения отправлять коммитом, не думая и не вспоминая, что нужно переносить.
Собственно для этого вам и нужна VCS))
В общем рекомендую git - как VCS И git flow как процесс управления ветками.
При этом под общий репозиторий рекомендую все же выделить отдельный сервер (хотя при вашей схеме можно непосредственно репозиторий поднять на dev).
Так же очень рекомендую посмотреть в сторону gitlab (если код покрыт тестами, или планируется - gitlab-ci).
Вам ни что не мешает поднять тот же gitlab например на
DO.