Использовать систему контроля версий и, в этом случае, иметь «стабильную» ветвь (или использовать транк в качестве стабильного компонента). Поставьте там требование, чтобы все в этой ветви (или транке) было подходящим для немедленного развертывания в любой момент времени. И добавьте предупреждение о том, что тот, кто сломает эту ветку / ствол, умрет или каким-либо другим мучительным наказанием.
Добавление автоматического тестирования также даст вам уверенность в таких вещах - если тесты пройдут успешно, вы можете предположить, что развертывание на работающем сервере не составит проблемы. Конечно, для создания такой среды (и, следовательно, денег) требуются довольно большие затраты времени (и, соответственно, денег), плюс вам придется убедить руководство.
Это также большой плюс, если у вас есть тестовая среда, которая ведет себя точно так же, как производственная среда - те же или сопоставимые данные, оборудование, операционная система, версии стороннего программного обеспечения и среды выполнения, и если ваша производственная среда является кластерной ( несколько веб-серверов, например), убедитесь, что в вашей тестовой среде это тоже есть - это можно сделать с помощью виртуальных машин, если я прав.