it's not the same as forks in a blockchain where you can just pick the smaller hash. there is usually tens if not thousands of changes in a commit, and it would be highly impractical to have code rearrange itself as you work on it. it's good that i bumped into this subject because the project i am helping bring to fruition needed some protection from concurrency and they devised some good solutions.