Although I prefer the Pro Git book, it’s clear that different resources are helpful to different people. For those looking to get an understanding of Git, I’ve linked to Git for Beginners: Zero to Hero 🐙

The author of “Git for Beginners: Zero to Hero 🐙” posted the following on Reddit:

Hey there folks!

I’ve rewritten the git tutorial. I’ve used over the years whenever newbies at work and friends come to me with complex questions but lack the git basics to actually learn.

After discussing my git shortcuts and aliases elsewhere and over DMs it was suggested to me that I share it here.

I hope it helps even a couple of y’all looking to either refresh, jumpstart or get a good grasp of how common git concepts relate to one another !

It goes without saying, that any and all feedback is welcome and appreciated 👍

TL;DR: re-wrote a git tutorial that has helped friends and colleagues better grasp of git https://jdsalaro.com/blog/git-tutorial/

EDIT:

I’ve been a bit overwhelmed by the support and willingness to provide feedback, so I’ve enabled hypothes.is on https://jdsalaro.com for /u/NervousQuokka and anyone else wanting chime in. You can now highlight and comment snippets. ⚠️ Please join the feedback@jdsalaro group via this link https://hypothes.is/groups/BrRxenZW/feedback-jdsalaro so any highlights, comments, and notes are visible to me and stay nicely grouped. Using hypothes.is for this is an experiment for me, so let’s see how it goes :)

https://old.reddit.com/r/learnprogramming/comments/14i14jv/rewrote_my_zero_to_hero_git_tutorial_and_was_told/

    • canpolat@programming.dev
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year ago

      Git has a steep learning curve and everyone has a different way of learning things. So, kudos for taking the time for trying to clarify things.

      Some unsolicited feedback: Most of the time, I see people struggling with git checkout. And it’s not without a reason. checkout has too much responsibility. Or, to put it in a more nuanced way, from the plumbing point of view it has a single responsibility, but from the user’s point of view it has many. So, I try to suggest using switch and restore instead of checkout when appropriate. But old habits die hard, I still use checkout for both of those things. I found a concise Stackoverflow answer. Maybe it would also clarify things for your audience?

      • jdsalaro@feddit.de
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        from the plumbing point of view it has a single responsibility, but from the user’s point of view it has many

        I wholeheartedly agree, I’ll add this edit to my backlog !

          • jdsalaro@feddit.de
            link
            fedilink
            English
            arrow-up
            5
            ·
            1 year ago

            It’s not really that my blog focuses on git, rather than that’s what I chose to get active again with :) I’ve got many posts drafted but decided to start with topics I’m well acquainted with and newbies feel are challenging. I’ll post there !! Thanks 👍🏼

  • funbike@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I like that you explain the data model near the start, although I think more detail would be better.

    I believe it’s much harder to master git without understanding the simple underlying data model. Many tutorials don’t touch on it and instead jump straight into recipes for various workflows. Users can follow those recipes, but don’t really understand what the commands they are using do.

  • santa@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Something I’ve been trying to figure out for a bit is how to restore hunks like gitk or vscode do via gui. It seems like it is an augmentation combination of cherry-pick and/or rebase. I prefer command-line, but if I need to do this one operation I fire up a gui, or restore lines with patch.

    Any idea how to do it, or how it is done behind scenes in gui?