Version Control with Git – Concepts with Hands On Projects
Are you completely new to version control systems & Git? Are you using Git commands but are not really sure how they work behind the scenes? Are you not able to use full power of Git?
If answer to any of these questions is yes, then this course can help you.
Git is one of the most elegant software tools that I’ve ever used. This is not just any other version control system. Git will change the way you work for better! Branching is the killer feature of Git that will make you more productive by allowing you to work on multiple things at same time.
To fully harness this power of Git, you need to know more than just commands. You need to understand the concepts behind those commands. Only then can you use Git with confidence and become super productive.
How this course will help you?
We have spent a lot of effort to design and record this course. We are not starting first lesson with typing commands. We spend some time understanding how version control systems work.
Then we explain the distributed version control systems. To know how Git is different than say SVN, you should know what is a distributed version control. You’ll learn that here.
Then we start working with Git. We explain important concepts in separate lectures along the way just before we use those concepts. You’ll learn a new concept and then immediately use those concepts with Git commands. This will teach you the concepts without getting bored.
We then learn what is a remote repository. We’ll use Github for our remote repository. So you’ll learn how to create a repository on Github, how to clone one from Github, create branches and much more.
This is a growing and a curated course. We’ve already added more than 5 Hrs of content that will get you started on any project you want. But we’ve a lot more to say. We’ll be adding more advanced Git concepts and more lectures on them.
At the end of this course you’ll be armed with the knowledge about Git commands & concepts behind them, which will allow you to tackle your daily version control tasks with confidence and use Git to its full potential.
Introduction to Version Control Systems
We'll get an overview of what we are going to cover in this section.
Understand the version control systems in general. We'll see how a version control system works and learn some of the terminology that goes with version control system operations.
Currently there are two types of version control systems which are widely used. We'll learn what those popular types are and learn how a central repository based version control system works.
Distributed version control systems are becoming more popular. Git is also a distributed version control system. In this lecture we'll see how such systems work without getting into commands and other internals. This lecture will help you understand the git commands we'll be learning throughout the course.
Starting with Local Git Repository
This section focuses on using git on our local machine. This overview will outline the contents of this section.
Follow these simple instructions to install git on your computer. I've not added a lecture because the instructions provided on Git website are simple and easy to follow.
Here we'll create our first git repository. We'll learn about the 'git init' command and how it behaves under different circumstances.
Git staging area is a source of confusion for a lot of people. This lecture will explain the concept of various logical areas in git. We'll also map git commands to these areas.
In this lecture we'll do our first commit. We'll see how we can check local working area status, how to add files to staging area in commit using git commands.
Git log command shows us previous commits that are done in the repository. This lecture will explain the git log command and it's various options to customize the output.
Checking file difference is one of the most common operation you'll be doing when working with Git or any other version control system. This lecture will explain in great detail how to use the 'git diff' command and how to read the diff command's output.
Git checkout command has various uses. This lecture will explain one of the simple uses of git checkout command.
This lecture will explain the concept of references in Git. Branches, remote repositories and HEAD are some important references. We'll learn what they are and how Git uses them.
Learn the 'git reset' command in this lecture.
When programming, especially with a compiler, we get a lot of intermediate files. Learn how to ignore those files when we are committing our changes using the .gitignore file.
This section is all about branching in Git. Branching is the star feature of Git. This lecture will give you the overview of this section.
Before we start running commands related to branching, we'll learn the concept of branching in this lecture.
In this lecture we'll see how a git branch works. We'll then learn the commands to create a branch and to start using it.
Section about branching is not complete until we learn about merge. We'll learn the 'git merge' command in this lecture. We'll merge a git branch with another in this lecture.
This lecture completes the circle by introducing the command to delete a Git branch.
Merge Conflicts & Resolution
Whenever there is a merge, there is a good chance of conflict. This section is all about merge conflicts. This lecture will provide overview about the concepts we'll be learning in this section.
Learn the Git concept of three way merge in this lecture.
In this lecture we'll see the three way merge in action. We'll learn how to identify when a three way merge has occurred.
This lecture will discuss the merge conflicts in detail. We'll see how to read the conflict information provided by Git. We'll then see how to resolve a Git merge conflict.
This section is about remote repositories. If you are working in a team then you'll be using a remote repository to share your changes with others. This lecture will outline the topics covered in this section.
This lecture will explain the concept of remote repositories. We saw them in distributed version control system lecture. In this lecture we'll see what is a common remote repository.
We'll setup a Github repository in this lecture. You'll learn how to use Github interface and setup your own repository.
We'll learn 'git clone' command in this lecture. We'll continue using Github as our remote repository.
This lecture explains two important commands when working with remote repository in Git. We'll learn how to send our changes to Github repository and get changes from Github to our local Git repository.
In previous lectures we used a Git repository on Github that was already initialized and had some files. This lecture tells you how to setup Github repository from your existing local Git repository.
Branching being the star feature of Git, discussion of remote repository is incomplete until we learn how to use branches with remote repository. In this lecture we'll learn how to create branch on Github using Github interface, and then get that branch into our local Git repository.
This important lecture will clarify the differences between 'git clone', 'git fetch' and 'git pull' commands.
This lecture will teach you how to put a branch created in local Git repository into remote repository.
Finally we'll learn how to delete a remote branch safely.