Complete Git Guide: Understand and Master Git and GitHub

Complete Git and Github Guide – master all Git features: commits, branches, rebasing, and squashing

What you'll learn

  • Deeply understand how Git works under the hood
  • Use Git niot just in terminal but also in graphical user interfaces like GitHub Desktop, Sourcetree, Visual Studio Code
  • Learn different Git objects – blobs, trees, commis and annotated tags
  • Create local and remote Git repositories
  • Perform basic and advanced Git operations
  • Learn how to perform rebasing and merging of the branches
  • Learn what is pull request and how to create pull request at GitHub 
  • Contribute to public repositories using technique of forks and pull requests from the forked repositories
  • Understand what is semantic versioning and how to use Git Tags in order to create software release versions
  • Learn advanced Git operations – squashing, cherry-picking, amending, reverting commits


  • We will start from the very beginning, from basic Git features and move on to advanced techniques and operations
  • Prepare only your Mac, Windows, or Linux/Unix computer. Anything will work.
  • If you are new to Git, please start from the very beginning: learn how Git works and how to perform basic operations (git add, git commit, git branch)
  • If you are advanced Git user I highly recommend you to watch “How Git wiorks under the hood” section and then jump to advanced Git features like squashing, cherry-picking etc.


This course is all about Git and gitHub.

Undersatnd how Git works and learn all Git dfeatures from basic commita to squahing and rebasing.

Blobs, Trees, Annotated tags, SHA1 hashes

If those terms are new to you – jump in and you will learn all about Git internals and afterwards practice basic and advanced Git features using multiple practice activities.

Become a master of Git, GitHub, GitHub Desktop, SourceTree and Visual Studio Code.

 This is the most complete practical Git and Github guide that includes tons of practical activities. Most important is that you will learn how Git works and knowing it you will be able much more easier use Git features and fix mistakes in your development workflow. You can have zero knowledge about Git and GitHub. All will be taught from scratch, from basic to advanced featuress. if you want to get deep knowledge of Git and Github this course is for you!

We will start by exploring internal structure of the Git repository. You will learn that Git has 4 types of objects: blobs, trees, commits and annotated tags. Each object has unique SHA1 hash. Also all objects are stored in the folders. Every object has just single reference to it SHA1 hash. Files are stored in blobs. Filenames are stored in other Git objects called trees.

I will explain you how to create new Git objects without using git commit and git add. After creating Git object in the Git repository you will checkout it to staging area and working directory (opposite direction to traditional Git flow)

Afterwards we will jump into tons of practice activities and use different Git and gitHub featurs.

In practice sections you will perform multiple practice Git activities:

  1. Initializenew git repository
  2. Make changes, add them to staging area and commit
  3. Create branches, checkout branches and merge branches
  4. Perform fast-forward and 3-way merges of the branches
  5. Ressolve merge conflicts
  6. Move into detached HEAD state and make experimental commits there
  7. Perform rebasing of the branches


You will also learn and practicce different GitHub features

  1. Connect local and remote repositories
  2. Pushing, fetching and pulling operations
  3. Open Pull Request
  4. Merge Pull Request
  5. Add software versions using Git tags
  6. Create forks from other repositories
  7. Contribute to public repositories using techniques of forks and pull requests
  8. Perform rebasing with squashing


You will use not just terminal and shell commands for perfforming Git operations. In parallel you will also use GUI applications that simplify routine day-by-day Git operations:

  • Github Desktop
  • Source Tree
  • VisulStudio Code


With this course you will get lifetime-long access to almost 200 lectures and tens of practical exercises. After the course you will become a guru of Git and GitHub and will be able easily perfooorm basic and advanced Git tasks.

But most important is that you will UNDERSTAND Git.

Who this course is for

  • Anyone looking to learn how to program in the c language.

Course Content

Course Meta Data

Created By Bogdan Stashchuk || Last Updated 06/2021 || Resource

Complete Git Guide