Befit the Git - Resources for Learning Beginner to Advanced Git Topic

Befit the Git
- Resources for Learning Beginner to Advanced Git Topic

If I've absorbed anything from the plethora of "How to get a job as a new developer" content I've come across, it's that being able to demonstrate your knowledge and experience with a version control system (VCS) is an absolute must. Even if you're not aiming to be hired, having a system to track your code modifications should be essential to any workflow. Unless you've been living under a rock, you already know that Git is the industry standard VCS.

In this post, I will not be covering the ins and outs of what a VCS is or even go into the nuts and bolts of Git itself. I will, however, be sharing with you some of the most effective resources I've come across that teach how to understand, work with and get the most out of Git.

Knowing how vital a skill working with Git is, I've been determined to conquer the beast. I cannot tell you how many sources I've sought out, until finally finding quality content.

From a Clean Slate, With No (or Some) Prior Knowledge

For the absolute beginner, at the most basic level, Andrei Neagoie's Git & Github Tutorial is the most clarifying. He not only takes an in-depth look at the basics, he delivers a clear understanding of a full workflow.

For the novice already experienced with the basic git clone, git add, and git push commands, the entire Pro Git book by Scott Chacon and Ben Straub is available online for free. I especially recommend Chapter 2 which clearly details how to track, ignore, remove, and restore files and when git fetch, git switch, git checkout and git pull are most appropriate. The last section of the chapter is a nice bonus with step-by-step instructions on how to configure alias commands to help streamline your process and type less :)

Tackling Branching, Merging and Rebasing - A Must for the Jr. Developer

Chapter 3 of the same book has excellent, well detailed diagrams and illustrations to help visualize branches (pointers) and commits (the nodes to which they point). It further delivers specific steps on how to resolve issues related to fast forwarding and divergent histories. It wraps up by de-structuring the ever dreaded git merge and takes an effective look at how/why git rebase is a viable, if not better, option than merging.

On the same topic, Sam Livingston-Gray breaks down both processes in a definitive manner in the guide Think Like (a) Git. He clearly details the inner workings of Git, allowing us to visualize our Repos in a meaningful way. He gives piecemeal examples of merging and rebasing and touches upon the more complex cherry-pick command.

Black Belt Merging - For the Advanced

This next link was taken directly from Livingston-Gray's guide and is where you will find Ryan Tomayko's reasoning of why working with

Git means never having to say, "you should have."

He details a development style where "coding and interacting with version control are distinctly separate activities." By utilizing the git add --patch command with specific qualifiers, he instructs how to specify what precisely to add to a commit, even dissecting parts of a files.

So, if you're a complete beginner to or already a champion of Git, I hope some of what has helped me can help you, too. Happy coding!