←back to thread

1062 points mixto | 4 comments | | HN request time: 0s | source
Show context
scrapcode ◴[] No.42942555[source]
I can't help but feel that Git has completely missed the forest through the trees that you can make a 30+ part guide explaining how to use it.
replies(6): >>42942641 #>>42942672 #>>42942768 #>>42943372 #>>42950299 #>>42954886 #
20k ◴[] No.42943372[source]
Honestly, 99% of the pain of git is simply because people use it through the CLI. If you use tortoisegit or a visual tool, you don't need to worry about any of this because its self explanatory, and it becomes trivial to use

Learning git like this is honestly just hampering yourself

replies(10): >>42944314 #>>42944637 #>>42944837 #>>42944918 #>>42946240 #>>42946386 #>>42946705 #>>42948452 #>>42948599 #>>43014598 #
1. zelphirkalt ◴[] No.42946386[source]
Learning it like this makes one learn the concepts though and build something closer to an actual understanding. I have seen people struggle with understanding what git does or with making fine grained commits or mostly atomic commits a lot, especially GUI users, because many of them do not have the underlying concepts understood well enough.
replies(2): >>42946671 #>>42957026 #
2. tonyedgecombe ◴[] No.42946671[source]
I think you could use a CLI and still not really understand the core concepts.
3. 20k ◴[] No.42957026[source]
Knowing how to do it through the CLI adds nothing to your understanding of the concepts though. Its just whether or not you have to remember an opaque CLI command, or you get a UI to click
replies(1): >>42961346 #
4. zelphirkalt ◴[] No.42961346[source]
I think it depends. If the GUI tooling is exposing you less to the actual concepts and builds new concepts on top, that simplify things, then that will hamper a new user's understanding of the underlying concepts. Of course, it is not the CLI usage itself, that is the key here, but the usage of a tool, which exposes you to the actual concepts of git, and the most common tool like that is, of course, the default git command line interface.