Comment by skydhash
5 hours ago
> Git has horrible design and ergonomics.
People say this and never has written about the supposed failure of design. Git has a very good conceptual model, and then provides operations (aptly named when you know about the model) to manipulate it.
Most people who complains about git only think of it as code storage (folder {v1,v2,...}) instead of version control.
> never has written about
If you don't want to look at what people write you can't say that they haven't written about it.
> the supposed failure of design
I don’t think people complain about the internals of git itself as much as the complexity of all the operations.
If you want to read about complaints, you really don't have to look further than the myriad of git GUIs, TUIs and otherwise alternative/simplified interfaces.
> I don’t think people complain about the internals of git itself as much as the complexity of all the operations.
The complexity is only there when you want to avoid learning what you’re doing. Just like find(1) is complex if you don’t know stuff about the file system or sed(1) is complex if you don’t know regex and line based addresing of a text file.
A lot of people who are using git don’t want to know what a commit is and their relation to branches. And then they are saying rebasing is too complex.
> If you want to read about complaints, you really don't have to look further than the myriad of git GUIs, TUIs and otherwise alternative/simplified interfaces
Git is a cli. The goal is always for you to find your workflow then create aliases for common operations. It does assume that you want complete control and avoid doing magic (which is what jj is doing).
Wanting magic is great (I use magit which makes git magical ;) ) but it’s like wanting to fly a plane without learning the instruments.