I’ve now used Git for more than a decade, and GitHub+GitLab for a long time as well. I can’t help but wonder what the impact has been, and how much of it was positive and negative.
In particular, I wonder whether tools should embody their desired ways of being used. Git absolutely did not take this approach: it was initially created as an abstraction for building version control systems onto. I think this is one of the reasons why continuous integration as a concept was never on the forefront. I now see people creating huge branches, merging branches into other branches (deeply nested branches), all leading to an unmanageable clusterfuck.
Git is the tool that made it easy to make this mess. So the question is: can tools be blamed for being easy to mis-use? My answer is definitely “yes.”
What would a version control system look like, if it embodied all the known good practices?