There are many plugins like wpstaging, guru migrate or versionpress.
But these are just plugins. It's best to use a wordpress version control system.
I suggest you to try a wordpress version control system.
Do you work alone or in a team? Where are you currently hosting your domain?
This might sound impossible but this wordpress version controlled system will make your wordpress development easier than ever.
GeekBee.io helps to create team friendly wordpress development environment for you.
You can create several staging and development branches and merge the files and database changes with one click. We provide ftp and ssh access to each staging environment.
In addition to this we offers you a solution to create testing environments, and apply the changes with one click and also with our website migrator moving a website never been easier.
If this sounds like something that will make your life a whole lot better let’s talk.
Please let me know if you are interested in.