- cross-posted to:
- git@programming.dev
- cross-posted to:
- git@programming.dev
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 thefeedback@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. Usinghypothes.is
for this is an experiment for me, so let’s see how it goes :)
Hey there, author here in case you folks have questions 👍🏼
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 usingswitch
andrestore
instead ofcheckout
when appropriate. But old habits die hard, I still usecheckout
for both of those things. I found a concise Stackoverflow answer. Maybe it would also clarify things for your audience?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 !
I see that your blog focuses on Git. I’m not sure if you are aware, or not, but there is a Git community at https://programming.dev/c/git. Feel free to share links to your blogs.
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 👍🏼
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.
Would that only revert part of a file?
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?
What about
git checkout -p HEAD^ myfile
?Would that only revert part of a file?
Try it and report back
Great tool! Had no idea about how this switch worked. Still figuring it out, but looks like it will do the trick. Hunting down resources for more detailed examples. Thanks!