Hey there, author here in case you folks have questions ๐๐ผ
Learn Programming
Posting Etiquette
-
Ask the main part of your question in the title. This should be concise but informative.
-
Provide everything up front. Don't make people fish for more details in the comments. Provide background information and examples.
-
Be present for follow up questions. Don't ask for help and run away. Stick around to answer questions and provide more details.
-
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
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?
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.
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!