
GitHub Told Me I Had Merge Conflicts. Git Told Me I Didn't. They Were Both Right.
Last month I tried to merge main into stg . Routine sync. GitHub said: "Can't automatically merge". So I ran the same merge locally... and got a clean merge. Zero conflicts. Same branches. Same commits. Different answer. I've been writing software for years and I genuinely did not know this could happen. What followed was the kind of debugging session I recognize from physics more than from software: tracing a failure back through layers of structure until you hit the actual constraint that's doing the damage. Except the system wasn't a quantum lattice. It was git's commit graph. And the constraint wasn't an obvious one. If you've ever been surprised by a merge conflict, or wondered how git's merge-base works, or just want to understand how branch flow design can create weird graph topologies, welcome to the story of twelve merge bases, a diamond-shaped DAG, and the fix that shouldn't have worked. A quick crash course (the parts that matter) If you already think in terms of DAGs and me
Continue reading on Dev.to
Opens in a new tab



