When we have new Dev flows fully tested & ready to push to Prod, we usually "Save As" the flow in Prod environment and then update the dependencies in the new Prod flow to prod version of data actions/tables.
Also, say there are changes done to existing to Dev flow and they are tested, we then go & add the same changes in existing Prod version of that flow.
Is this ideal approach? Or is there better & safe way to push to Prod?
There is no single one-size-fits-all answer. The most common way to do this is to our Archy tool to export the flows and then use a CI/CD pipeline using our CX as Code Terraform provider to deploy the architect flow and any of its dependent objects. Some of our larger customers also use the CX as Code export capabilities and/or the professional services team's BCP/DR application to synchronize code between their product environments. I suggest you checkout: