[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)