I will try to describe what I'm liiking for as best as I can.

I have a team of developers working on different sites all written with PHP.

For the example, they are now working on a site mysite.com

I want them to have something like a git solution where the master will be the staging area but I will be able to access the different branches and see them.

Let's give an example.

Dan is working on mysite.com
He has a local development environment which he forked from staging.mysite.com (the master).
Dan is creating a branch called dan-branch-1 and another one called dan-branch-2.
Both branches need to be available at the addresses staging.mysite.com/dan/dan-brach-1 and staging.mysite.com/dan/dan-branch-2
When I'm saying available I mean a browsable website so I will have a copy of staging.mysite.com at each of the branches where my client will be able to see the changes we made for him.
After the changes are approved, Dan will merge the branches back to the master.
Finally at some point we will upload the master to the production server.

Is there such a solution that can help me with that?

Thanks !