Superb blog post contrasting the goals of VCS with git gotchas, comparing with hg, and making interesting suggestions: https://gregoryszorc.com/blog/2017/12/11/high-level-problems-with-git-and-how-to-fix-them/ Distinguishing hard forks from collaborative forks is a really nice idea.