Imagine John is the project manager. He leads a team of developers. He setups a git repository for the development team to use.
On the other side, John setups a git repository that connects to production environment.
John, the project manager, check for updates of stable branch from the development’s git repository. Then John pull the code and push to the production git repository.