As with most tools, step one is to install it! Let's tackle that, and then perform our first commit.
So you've learned how to add and commit files. But what exactly does that even mean, and what does each command do? 'Tis confusion!
Almost immediately, you'll fall into a trap where you've made a commit, only to realize that you forgot something or made any sort of error or typo. Do you create a new commit? Do you amend the last one? Do you start over from scratch?! Don't worry; for such a common thing, the fix is easy.
Before we move on, let's review the basic workflow you'll use when working on projects. Most importantly, we'll review the important question, "When are you supposed to create new commits"?
Back to the Future 2 is the key to understanding Git branching. I know, that sounds weird, but it's true!
From time to time, you'll encounter a merge conflict. Yikes! How is Git supposed to know which piece of code you wish to favor, when it has been modified on two separate branches? Well, it doesn't! That's your job.
You'll very quickly grow tired of typing these commands over and over. Instead, create some helpful aliases for yourself.
What about situations where you need to stash away changes temporarily, in order to switch to, for example, your master branch to perform some sort of hot fix? Sure, we could commit, but what if we're not ready for a commit just yet? How do we handle these scenarios?
Now that you've learned the basics of Git, let's figure out how push your repository up to GitHub.
You've learned how to merge branches, but did you know that there's a second way to merge changes? Git rebasing offers a way to rebuild a clean commit history. It can be a bit confusing at first, so let me demonstrate the basic concept in this video.
What about the times when you end up with a series of somewhat disjointed commits that don't even remotely tell a story. Perhaps commit messages like "WIP" or "fix typo" are littered throughout the implementation of some given feature. Is it possible to fix things up? Of course it is. We'll use interactive rebasing to make the process a cinch.