3 ms·
> … the only way to really understand deeply how git checkout works, you have to fundamentally understand the internal workings of git. This is, and always has
by sonofhans 2y ago
> … the only way to really understand deeply how git checkout works, you have to fundamentally understand the internal workings of git.
This is, and always has been, the primary UX problem with git. You use commands to manipulate the program’s model of the data, rather than to demonstrate your intent. It works only as long as your mental model of git matches git itself, but it doesn’t easily afford abstraction, and abstraction is the essence of efficient manipulation.
Put another way, a good tool allows you to use it well even if you don’t understand how it works. Git OTOH will quickly punish you for not understanding its model of the world.
A good UX for git would maintain the complexity for experts and provide a clear and simple surface area for most people who just want to perform familiar tasks. The fact that each person and team seems to have a unique incantation just for everyday tasks is an awful smell, and a sign of git’s immaturity.
- makemyworkforme 2y agoI must admit that when I first learnt git, I thought that the only way to correctly use git was to know the object model of git. I thought this was important because git is at the end a data manager and I then though that one should know the data model you are manipulating in order to manipulate it in correct way. In that respect, I always found git commands mostly intuitive. Much later in my career I learnt that people were using git without even knowing anything about what a Merkle tree is and I must say I was extremely surprised. I'm not saying its good or bad, just describing my younger days.