matt-rickard.com
The Terrible UX of Git
Excerpt
New software developers of all kinds all struggle with the same tool: using `git` for version control. Coworkers who had post-it notes to remind them of aliases or common operations. Others, finding themselves in a complex situation, deleting the entire repository and starting over again. Some sources of confusion: - Overloaded commands like "checkout" - it can either switch a branch, create a new branch, or restore a file to a previous version. … As someone who understands git internals (by trying to write my own version control system more than once), I still find myself referencing the documentation to do certain operations. It's clear that these UX issues don't cause enough pain to drive users to a simpler tool. Even "easier" abstractions like Magit or GitHub Desktop have failed to reach mass adoption.
Related Pain Points
High barrier to Git adoption due to complexity and steep learning curve
6Git is difficult to teach and learn. Advice typically boils down to 'learn these 4 commands, seek help for anything else.' Most developers use the command line interface, which they lack experience with. New users struggle with preventing merge conflicts due to inexperience with best practices.
Overloaded and ambiguous commands create confusion
5Commands like 'checkout' have multiple meanings—it can switch a branch, create a new branch, or restore a file to a previous version. This semantic overloading makes it difficult for developers to know which operation will execute.