Různých aplikací je na to dneska dost - jen zabere fůru času se v nich zorientovat a každou se naučit aspoň trochu rozumně používat..

Základ je určitě ten git - trackování změn, možnost návratu k předchozí verzi. Celkem úspěšně jej používám i k nasazování do produkce (produkce má vlastní branch, do které se mergujou změny z masteru - je vidět, co se mění, co je třeba otestovat, jde se vrátit zpátky...).
Základní změny v db jde taky trackovat v gitu - do souboru stačí udělat dump schematu, příp. i číselníků a commitovat změny. Pokud jich není moc, dají se i celkem slušně ručně zreplikovat na produkci. Další nástroj je třeba doctrine migrations ale člověk se jej zase musí naučit používat.
Pro verzování php knihoven i třeba php extensions je určitě composer. Není kdovíjak úžasný a při provozu spolkne klidně i několik GB RAM, ale pro php asi není nic jiného a používají jej všichni.
Dál alespoň základní automatické testování - phpunit. Po všech změnách může udělat méně či více testů, že se (asi) nic nerozbilo. Dá se doplňovat-rozšiřovat postupně. Pořád lepší testovat něco málo než vůbec nic

Každopádně vždycky je užitečné do logu psát důležité akce i neočekávané stavy - aby šly zpětně dohledat, co se v aplikaci děje.
A pak je hromada různých nástrojů, které to více či méně automatizujou, opakujou na různých dev-test-prod prostředích.. ale podle mně pro amatérskou práci, kterou dělám sám nebo v minimu lidí, nejsou vůbec potřeba. (vagrant, docker, magallanes, npm - gulp, webpack, jenkins, puppet, kubernetes, ansible... a každý den vznikají nové - s nadsázkou, než se člověk jeden nástroj naučí, už není moderní a dělá se to trochu jinak a s jiným nástrojem

)