I'm looking to improve the processes in our team. We currently are pretty informal: "I've finished feature X. Can you review my code?". This is not scaling up well now that we're busier - it's hard to remember whether a feature has been reviewed or not.
I'm familiar with using pull requests for code reviews when people each have their own remote repository (eg on GitHub). There they fork the source repository, make a change, then issue a pull request to the maintainer of the original source repository.
How does it work when everyone shares the same on-prem remote repository, though? I don't want developers to keep all their work just in their local repos, pushing to the remote only for code reviews, for two reasons:
1) I want a backup of their changes so if something happens to their machine their work isn't lost;
2) Similarly, if something happens to the developer or they're away, we have access to their changes.
We could create remote repositories for each developer but this seems messy. We deal with a couple of dozen repositories so having remotes for each developer seems like a huge waste of space.