Как настроить окружение для веб-разработки?
для точного воспроизведения окружения, если оно нужно - как вы и написали: докер или вагрант, что вам проще/удобнее.
обновление - если у вас обновление состоит только в обновлении файлов, то сгодится и гит. но часто кроме обновления файлов требуется еще вспомогательная работа (оптимизация изображений, компиляция css/js, минификация/объединение css/js, запуск миграций и т.п.). поэтому обычно для этого используют инструменты или сервисы деплоя.
Для точного воспроизведения серверного окружения используется Docker.
Заливать чем вам удобно, зависит от многих параметров. Git может быть как вариант.