The “Impossible Triangle” of Project Collaboration on GitHub
Let’s introduce the three (heavily opinionated) ideals of a Git project, and explain why achieving all three simultaneously is currently impossible using GitHub’s native tools alone. Hand-crafted Linear History on Main The main branch consists of a single, straight line of commits: Each commit is a logical, atomic change crafted by its original author. The result is history you can read, search, and bisect easily, with true cause-and-effect visible. No unnecessary noise from merge or squash commits. This requires discipline and some effort. If commits are not meaningful and well-structured, then hand-crafted linear history does not bring any value. PR-based Review and CI for All Changes No change lands without automated verifications. You won’t accidentally push code that doesn’t build, fails tests, or lacks required reviews. Every change goes through a Pull Request with CI checks before merging. All Commits Are Cryptographically Signed and Author-verifiable Every co...