[HN Gopher] The Elements of Git
       ___________________________________________________________________
        
       The Elements of Git
        
       Author : todsacerdoti
       Score  : 95 points
       Date   : 2021-09-19 14:07 UTC (8 hours ago)
        
 (HTM) web link (cuddly-octo-palm-tree.com)
 (TXT) w3m dump (cuddly-octo-palm-tree.com)
        
       | mynameismon wrote:
       | My favourite video explaining Git:
       | https://missing.csail.mit.edu/2020/version-control/
       | 
       | Explains nearly everything you need concisely and effectively, in
       | about 20 minutes (the rest of it is primarily demonstration).
        
       | everybodyknows wrote:
       | For anyone new to git, or puzzled by its fundamental structure, I
       | recommend starting with this:
       | 
       | https://medium.com/girl-writes-code/git-is-a-directed-acycli...
       | 
       | While reading the Medium post, it may be helpful to bear in mind
       | that arcs shown in the drawings -- called "pointers" in the text
       | -- are exactly hashes to git.
        
       | olvy0 wrote:
       | I must I found this, personally, to be the most clear and concise
       | explanation of git's internals than the tens of other
       | explanations I've read the last couple of years. Kudos to whoever
       | wrote this.
        
         | nerdponx wrote:
         | I think all sophisticated frameworks need a document like this.
         | What are the basic components of the system, what purpose do
         | they serve, and how do they interact?
        
       | tonetheman wrote:
       | Git is a circle jerk for programmers who would rather talk about
       | work than actually do work.
        
       | Stampo00 wrote:
       | I'm a huge fan of git education. From a computer science
       | standpoint, git is very clever but not particularly hard to
       | understand. From a usage standpoint, although it's gotten better
       | over the years, I still wouldn't call it user-friendly. I'd like
       | to see more competing implementations out there. I'd like to see
       | better git libraries for application support. I'd like to see
       | libraries that support alternatives to flat file repo
       | representations.
        
         | bloopernova wrote:
         | I kind of view git like vim, awk, or Emacs. It has a complex
         | set of features, and it takes time and practice to learn to use
         | them sufficiently well.
         | 
         | The quality of the introductory documentation has gotten better
         | over the years, thank goodness. I know a great many developers
         | who are terrified of git, and stick to the couple of commands
         | they get taught by the team lead.
        
       | operatorequals wrote:
       | I got pretty fed up with learning got from the internet when I
       | had too (about 8 years ago). Every resource I could find was
       | written in a way that only people that already knew could really
       | understand.
       | 
       | Now, that I finally feel good enough, that I can rely on what I
       | know and finally in position to mentor others, I made what I feel
       | was missing, a set of sandbox git repository challenges, with
       | only real life examples [1] I met in professional repos.
       | 
       | I hope the dark age of git education passes soon (and is already
       | fading).
       | 
       | [1]: https://github.com/operatorequals/git-course
        
         | iib wrote:
         | This is exactly what I felt was missing as well. Git is the
         | kind of "skill" you can only master on the job, doing lots of
         | case studies, not just reading documentation and tutorials.
         | 
         | There are lots of other programs like that, GDB for example,
         | each with it's own challenge of sythesizing case studies. I
         | hope this kind of learning continues, not only with git, but
         | across other programs as well.
        
           | dboreham wrote:
           | This is a symptom of the extremely poor design of its user
           | interface (conceptually, I mean, not how it looks),
           | notwithstanding its origins in Linux royalty.
        
             | wrycoder wrote:
             | _The secret is that git is, first and foremost, an on-disk
             | data structure (hereafter "git repo"). It's very well-
             | defined and documented, which means that anyone can write a
             | new tool that processes a git repo._
             | 
             | Go for it!
        
             | [deleted]
        
       | tomasreimers wrote:
       | Understanding how Git internals can actually be useful as more
       | than just to build intuition or as an academic exercise!
       | 
       | For example, where I work (https://graphite.dev) we use some of
       | these plumbing commands to extend git to store additional
       | information about pull requests. My teammate did a writeup of
       | this here: https://dev.to/foster/how-to-use-native-git-as-a-key-
       | value-s...
        
       ___________________________________________________________________
       (page generated 2021-09-19 23:01 UTC)