Following my post on Git and its basic definitions, I decided to bundle up some more articles about Git, this time with more advanced topics. While there is no shortage in posts about Git, I have collected those that are particularly interesting or entertaining to me. I'll keep updating the article as I find more interesting posts worth sharing.
Tutorials, Command Collections, & Tips Collections
How to Git — This is a detailed tutorial that is aimed at both beginners and advanced users. The tutorial starts with an explanation of what Git is, but it also lets you skip the introduction and get to the next part, which is about Git configuration. Next, it gives tips on how to do various things in Git (e.g., stash), and then it moves on to advanced tips. In short, it covers the whole range of Git proficiency levels. The tutorial’s font is large, clear, and easy to read, which is another point in its favor.
This post - Little Things I Like to Do with Git - as its name implies, is not exactly a step-by-step guide, but a collection of interesting things the author does with Git: for example, he calls blame
praise
, hides spaces, shows changed words instead of lines, shows a log from a certain date, checks for changes before pull, and many other commands.
Useful Git Commands — This is a list of Git commands split into categories: Installation, Color Settings, Recommended Aliases, and much more. A few that I liked: show commit info, show commits by author.
This post explains some common git commands such as rebase
, add
, status
, log
, and it ends with a recommended exercise to practice what is learned in the post. Cool idea! This post also introduced me to the -p
parameter that enables committing parts of files!
Pick. Squash. Drop. Rebase! in comics is a short post that explains these Git commands in a nutshell, using cartoon visualizations. After reading the above, you can read this article, which describes in depth how to squash
and rebase
before a merge
.
A post that explains commands that are more advanced and less familiar such as amend
, stash
, cherry-pick
, and interactive rebase
.
Interactive Sites
An impressive site that teaches Git interactively. Although it’s called Learn Git Branching, it teaches everything about Git.
This is a site with a nice idea: it asks you what you want to accomplish with Git, and then gives you the appropriate command.
Posts that Talk About Git
Do you know how Git got its name? Git was developed by Linus Torvalds, the developer of Linux. The word git in British English means an unpleasant person. According to Wikipedia, this is how Torvalds explained his choice of this name for the system he developed: “I’m an egotistical bastard, and I name all my projects after myself. First Linux and now Git.” (Note that according to this thread on Quora, Torvalds did not give Linux its name.) If you go to Wikipedia you can read about other reasons and other acrostics that analyze Git’s name. Thank you to Shani Fedida for introducing me to this piece of info.
Comparing processes within Git that do the same thing — this post examines Git commands that seemingly perform similar tasks, and explains each command’s uniqueness. The post compares revert , checkout
and reset
, as well as merge
and rebase
. Besides, the post has many illustrative images to enhance understanding. This post is part of a series that has additional engaging episodes such as Team Etiquette when Working with Git, and Tips and Tricks.
Speaking of etiquette, the next post (in Hebrew) is very detailed on the subject of being considerate of team members when Committing, and what Git commands aid in the process when the assumption is Git’s log should read like a story. The post also has links to the author’s previous articles about the issue of courtesy, and the job arrangements that arise from it.
The subject of Understanding the Git Commit’s Hash seems to be a less talked about topic, and this post expands upon it: what the hash consists of, how it can change, and how it can affect the repository.
A half-hour of a Behind-the-Git-Scenes lecture.
A series of videos about Git and its Processes (in Hebrew). The videos explain the commands, what is behind them, and how to perform them optimally. The first video seeks to change the way we perceive Git: instead of thinking of it as a system that saves changes and enables us to combine one’s changes with others, imagine Git as a graph. It’s a significant concept change, but it aids in understanding what actually happens when you commit, merge, and so on.
Cheat Sheets
A Short Cheat Sheet — a link that contains several Git commands and their descriptions. It does have a nice feature, which is a Copy button near each command.
A Git Cheat Sheet PDF file. Has many commands.
Closing Words
Do you have any favorite posts about Git? Favorite commands? Statements or rules? I’d be glad to hear them! Thanks for reading, I hope that you found this article helpful.
-This post was originally posted on my blog (Hebrew).