this post was submitted on 25 Jun 2023
40 points (100.0% liked)

Learn Programming

1640 readers
1 users here now

Posting Etiquette

  1. Ask the main part of your question in the title. This should be concise but informative.

  2. Provide everything up front. Don't make people fish for more details in the comments. Provide background information and examples.

  3. Be present for follow up questions. Don't ask for help and run away. Stick around to answer questions and provide more details.

  4. Ask about the problem you're trying to solve. Don't focus too much on debugging your exact solution, as you may be going down the wrong path. Include as much information as you can about what you ultimately are trying to achieve. See more on this here: https://xyproblem.info/

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

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/

all 12 comments
sorted by: hot top controversial new old
[โ€“] [email protected] 10 points 1 year ago (1 children)

Hey there, author here in case you folks have questions ๐Ÿ‘๐Ÿผ

[โ€“] canpolat 5 points 1 year ago (1 children)

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?

[โ€“] [email protected] 2 points 1 year ago (1 children)

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 !

[โ€“] canpolat 3 points 1 year ago (1 children)

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.

[โ€“] [email protected] 5 points 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 1 points 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.

[โ€“] [email protected] 1 points 1 year ago (1 children)

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?

[โ€“] [email protected] 1 points 1 year ago (1 children)

What about git checkout -p HEAD^ myfile ?

[โ€“] [email protected] 1 points 1 year ago (1 children)

Would that only revert part of a file?

[โ€“] [email protected] 2 points 1 year ago (1 children)
[โ€“] [email protected] 1 points 1 year ago

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!