Even the most old-school companies have recognized that versioning source code is essential. It’s not universally true—a profitable, decades-in-business one-man-show software company still versions by copying directories in 2025—but such companies are rare today.
Git, the ubiquitous source code management tool, is used by countless companies and solo developers. Yet Git remains fundamentally flawed for ordinary software companies.
Git’s dominance in source code management mirrors WordPress’s position in the CMS and blog software market. Both tools achieve their core purposes but are burdened by numerous minor complications that unnecessarily complicate daily use. This exemplifies the ‘winner takes it all’ market effect, where early advantages accumulate over time, creating barriers…
Even the most old-school companies have recognized that versioning source code is essential. It’s not universally true—a profitable, decades-in-business one-man-show software company still versions by copying directories in 2025—but such companies are rare today.
Git, the ubiquitous source code management tool, is used by countless companies and solo developers. Yet Git remains fundamentally flawed for ordinary software companies.
Git’s dominance in source code management mirrors WordPress’s position in the CMS and blog software market. Both tools achieve their core purposes but are burdened by numerous minor complications that unnecessarily complicate daily use. This exemplifies the ‘winner takes it all’ market effect, where early advantages accumulate over time, creating barriers to superior alternatives.
I’ve used Git professionally since 2015, not out of preference, but because alternatives are impractical. As an independent developer, I can select preferred tools, yet when collaborating with companies or contributing to open-source projects—most hosted on GitHub—I must tolerate it regardless of personal preference.
While this critique may seem severe, Git’s practical impact is manageable. Having developed sufficient understanding to resolve challenging situations, I’ve adapted to its peculiarities much like we accommodate many aspects of life. Eventually, the time must come to reevaluate established practices and introduce innovation into conventional programming workflows.
Observing programmer peers—including veterans—reveals widespread dissatisfaction with Git, particularly among newcomers. This week, at a company where I assist the development team in building robust software, I witnessed this firsthand. While discussing software design principles, I should also conduct dozens of dedicated Git workshops.
They use minimal Git functionality, and when minor issues arise, they waste hours attempting fixes without resolving underlying problems. This inefficiency highlights the fundamental flaw in our tooling approach. Developers deserve version control that matches their actual workflow needs rather than struggling with unnecessary complexity.
What is the answer to this?
Try a version control system designed for everyday company workflows. I use Fossil SCM and was astonished by its simplicity. While lacking some ecosystem integrations, these gaps were easily addressed. Several alternatives exist—choose the one that best fits your needs!