Perforce and UE4
Originally I was using git for my UE projects. Unfortunately the git repo quickly became rather large very quickly. The main problem is that changes to binary files are not stored as deltas. And the local repo has the full history by default. So if you are frequently changing large binary files, your repo becomes very large.
git-lfs alleviates alot of these problems. And github directly supports this now (for a minor additional fee) This approach works great for a team of one or maybe two. But coordinating work among more people quickly becomes unwiedly. The "simultaneous checkout and editing" that works so great for text files simply does not work for .uasset or any binary file. You cannot "merge" binary files. Ironically, the old locking checkout strategy from cvs and svn days is better ( at least for teams working on binary files). This is where Perforce shines.
Through the Typemap, Perforce lets use Checkout locking for binary files, while still enabling simultaneous checkout and editing for source code. It also solves the large repo problem, because only the latest version is stored locally.
At first I struggled a little with the ui, and missed some of gits distributed features. But after using it extensively on a larger team, it is clearly a better fit for game development.
Perforce is very easy to configure, and realtively simple to learn. It has direct support built-in to the UE4 editor. For any UE4 project team, I highly recommend using it.