3 ms·
I didn't use git early on, but it's pretty unpleasant to use today as well. It's fine if you learn the right incantations but it breaks almost every unix rule
by calpaterson 14y ago
I didn't use git early on, but it's pretty unpleasant to use today as well. It's fine if you learn the right incantations but it breaks almost every unix rule in the book. Literally:
http://www.catb.org/esr/writings/taoup/html/ch01s06.html http://www.catb.org/esr/writings/taoup/html/ch01s06.html
There's only a few guidelines there that git obeys. The most obvious one it obeys is "separation".
- _ikke_ 14y agoMost tool require you to learn an interface to operate, and not the internals. Git is quite the opposite. If you are learning a set of 'incantations', git will always seem hard to use. But if you take some time to learn how git works on the inside (which is really not that hard), it gets much easier to understand why and how you need to use a certain command. Some argue that this is why git is bad, but I'd argue that this in the end is a good thing, because it gives you so much more power. Learning how to use git is an investment, bit in my opinion an investment worthwhile.
- dfc 14y agoWhich rules do you think it breaks?
- qznc 14y agoReading through the list of unix rules you linked, I find git reasonably obeys them. For example "Clarity is better than cleverness": Git provides a clear internal structure (Blob DAG). It does not try to provide clever merge algorithms, since "Buying a small increase in performance with a large increase in the complexity and obscurity of your technique is a bad trade". Or another example "Design programs to be connected with other programs". In contrast to Mercurial, many git commands are separate programs and it is trivial to implement your own in any language. Arguably git violates "In interface design, always do the least surprising thing", since it does not try to provide a comfy start for svn exiles.
- nine_k 14y agoFor SVN exiles, there-s git-svn http://www.kernel.org/pub/software/scm/git/docs/git-svn.html http://www.kernel.org/pub/software/scm/git/docs/git-svn.html
- Evbn 14y agoGit has an annoying feature where commands (like 'reset') will do completely different only vaguely relayed things based on flags or arguments, instead of having different commands.