4.5 out of 5
13 reviews on Udemy

Version Control with Git – Concepts with Hands On Projects

Learn in-depth concepts of Git with hands-on exercies
Coffee Powered Crew
186 students enrolled
English [Auto-generated]
Understand how version control systems work
Learn Git concepts
Use Git with confidence
Resolve conflicts, create & manage branches in Git
Use Github & remote Git repositories

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

Section Overview

We'll get an overview of what we are going to cover in this section.

Concepts - Version Control Systems

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.

Types of Version Control Systems & Central Repository

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

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

Section Overview

This section focuses on using git on our local machine. This overview will outline the contents of this section.

Install Git

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.

Create Git repository - git init

Here we'll create our first git repository. We'll learn about the 'git init' command and how it behaves under different circumstances.

Git Concepts - Working & Staging Area

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.

Git status, add & commit commands

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.

See what's going on with git log

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.

First encounter with differences - git diff

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.

Undo changes with git checkout

Git checkout command has various uses. This lecture will explain one of the simple uses of git checkout command.

Concepts - Git references

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.

Git reset

Learn the 'git reset' command in this lecture.

Ignore files with ignore file

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.


Section Overview

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.

Concepts - Branching

Before we start running commands related to branching, we'll learn the concept of branching in this lecture.

Create branch & switch with git checkout

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.

Git merge

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.

Delete a branch

This lecture completes the circle by introducing the command to delete a Git branch.

Merge Conflicts & Resolution

Section Overview

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.

Concepts - Three Way Merge

Learn the Git concept of three way merge in this lecture.

Three way merge in action

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.

Merge conflict & resolution

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.

Remote Repositories

Section Overview

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.

Concepts - Remote repositories

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.

Github - Setup account & create repository

We'll setup a Github repository in this lecture. You'll learn how to use Github interface and setup your own repository.

Clone remote repository

We'll learn 'git clone' command in this lecture. We'll continue using Github as our remote repository.

Working with remote repository - git push & pull

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.

Setup remote with existing local 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.

Remote branches

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.

Clone vs Fetch vs Pull

This important lecture will clarify the differences between 'git clone', 'git fetch' and 'git pull' commands.

Put local branch on remote repository

This lecture will teach you how to put a branch created in local Git repository into remote repository.

Delete remote branch

Finally we'll learn how to delete a remote branch safely.

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.5 out of 5
13 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


5 hours on-demand video
1 article
Full lifetime access
Access on mobile and TV
Certificate of Completion