Git is the distributed version control system that won software engineering. Every developer has a full copy of history, branching is nearly free, and merging text is largely automatic. For code, it is excellent and the debate is settled.
Game projects expose its assumptions. Git was designed around small text files that diff well, and it stores complete copies of anything that does not. Commit a 500 MB texture ten times and your repository carries ten full copies forever, because history is immutable by design. Since every clone carries all history, a repository that grows this way punishes every new hire who joins.
Git LFS exists to patch this by storing large files outside the repository and leaving text pointers behind, but it introduces its own failure modes and does not change the fundamental mismatch.
The second problem is cultural rather than technical. Git's model assumes you branch freely and merge later. That assumption holds only while merges succeed, and merges of binary assets never do.
Plenty of Unreal teams do run on Git successfully, usually by keeping C++ in Git for code review and putting Content elsewhere. What rarely works is the whole project in one Git repository past a certain size.