TOIT Training

Complete Git Guide: Understand and Master Git and GitHub

Complete Git Guide: Understand and Master Git and GitHub
  • Overview
  • Curriculum
  • Reviews

Overview

Complete with practical activities, this comprehensive Git and GitHub guide will help you understand how Git works. You’ll learn how to use Git features efficiently and fix issues in your development workflow. Starting with the internal structure of a Git repository, this course will take you through the four types of Git objects: blobs, trees, commits, and annotated tags. You’ll understand how each object has a unique SHA-1 hash and how all objects are stored in folders, files are stored in blobs, and filenames are stored in other Git objects called trees. You’ll even get to grips with creating new Git objects without using git commit and git add. Once you’ve created Git objects in the Git repository, you will add it to the staging area and working directory. By the end of this course, you’ll have become a Git and GitHub expert and be able to perform basic and advanced Git tasks seamlessly.

  • 19 Sections
  • 247 Lessons
  • 0 Quizzes
  • 21h 50m Duration
Expand All

Introduction to Git and GitHub

3 Lessons 0 Quizzes
  • Introduction to Git and GitHub
  • What to Expect in the Course
  • Git Versus GitHub

Installation of Git and Configuration of the Shell

6 Lessons 0 Quizzes
  • Introduction to Installation of Git and Configuration of the Shell
  • Installing Git on MacOS
  • Installing Git on Windows
  • Installing Git on Linux
  • Installing iTerm2 on MacOS
  • Installing Custom Z-Shell on MacOS

Basic Shell Commands

4 Lessons 0 Quizzes
  • Introduction to Basic Shell Commands
  • Shell Commands – Directory Management
  • Shell Commands – File Management – Part 1
  • Shell Commands – File Management – Part 2

How Git Works Under the Hood

29 Lessons 0 Quizzes
  • Introduction to How Git Works Under the Hood
  • Initializing a New Git Repository
  • Overview of the .git Folder
  • Git Object Types
  • Writing a New Git Object with a git hash-object
  • JSON Versus Git Database
  • What is the Hash Function?
  • Hash Function Overview
  • SHA-1 Hash Function
  • How Many Files can Git Store?
  • Probability Theory in a Dice Game
  • Git Hash Collision Probability
  • More details on hash collision probability
  • Exploring Git Objects with the git cat-file Command
  • Creating a New Git Blob Based on a File
  • Why Git Blobs do not Store File Names
  • Contents of Git Objects
  • What Have We Learned so Far?
  • Tree Objects in Git
  • Git Object Permissions
  • Creating a Git Tree Object
  • Examining Tree Object
  • Overview of Current File Distribution
  • Working Directory, Staging Area, and Git Repository
  • Git Read-tree
  • Reading Files in the Staging Area Using git ls-files
  • Git Checkout-index
  • Number of Folders Created for Objects
  • How Git Works Under the Hood Summary

Basic Git Operations

14 Lessons 0 Quizzes
  • Introduction to Basic Git Operations
  • What is Commit?
  • Configuring the Git Author Name and Email
  • Creating Your First Commit
  • Exploring a Commit Object
  • Project’s Current State Overview
  • Basic Git Commands
  • Adding a New File to the Working Directory
  • Git Files Lifecycle
  • Stage File
  • Unstage File using git rm
  • Committing Changes
  • Exploring Changes in a Git Repository
  • Current Diagram of a Git Repository

Git Branches and HEAD

16 Lessons 0 Quizzes
  • Introduction to Git Branches and HEAD
  • Most Common Git Operations
  • Project’s Current State Overview
  • Installing GitHub Desktop
  • GitHub Desktop Overview
  • What is Branch in Git?
  • What is HEAD in Git?
  • Third Commit
  • Git Repository Changes after a Third Commit
  • Checking Out a Specific Commit
  • Why Do We Need Branches?
  • Git Branches Management
  • Creating a New Branch
  • Committing Changes in the New Branch
  • Exploring Commit in the New Branch
  • Why Git Reuses Blobs with the Same Contents?

Cloning, Exploring, and Modifying Public Repositories

10 Lessons 0 Quizzes
  • Introduction to Cloning, Exploring, and Modifying Public Repositories
  • Cloning Remote Repository
  • Exploring the Contents of the Cloned Repository
  • Unpacking Git Objects
  • Exploring Cloned Repository in GitHub Desktop
  • Installing the Text Editor Visual Studio Code
  • Exploring Visual Studio Code
  • Committing Changes in the Cloned Repository
  • Git diff Command
  • Overview of the Changes

Merging Branches

15 Lessons 0 Quizzes
  • Introduction to Merging Branches
  • Why Branch Merging is Needed
  • Fast-Forward Merge
  • Merging process
  • Fast-Forward Merge in Action
  • Three-Way Merge
  • Performing a Three-Way Merge
  • Observing a Git Repository after a Three-Way Merge
  • Installing SourceTree
  • SourceTree in Action
  • What is Merge Conflict?
  • Creating Merge Conflict
  • Observing Conflicts in the Staging Area and Working Directory
  • Resolving a Merge Conflict in Terminal
  • Resolving Conflicts in Visual Studio Code

GitHub and Remote Repositories

10 Lessons 0 Quizzes
  • Introduction to GitHub and Remote Repositories
  • What is a Git Hosting Service?
  • Creating a GitHub Account
  • Exploring the First Repository in GitHub
  • Creating Another Commit in GitHub
  • Creating a New Branch in GitHub
  • Making Changes in the New Branch
  • Cloning a Remote Repository
  • What is Remote Repository?
  • How Remote Repository Empowers Collaboration?

Git Push, Fetch, and Pull

22 Lessons 0 Quizzes
  • Introduction to Git Push, Fetch, and Pull
  • Overview of the Push, Fetch, and Pull Git Commands
  • What is Origin?
  • Listing Remote and Local Branches
  • What is Tracking Branch?
  • Checking Out a Remote Branch
  • Git Remote Show Origin
  • Git Fetch in Action
  • Git Pull Two-Step Process
  • How to Perform Git Pull
  • What is FETCH_HEAD?
  • Git Pull with Fast-Forward Merge
  • Fetching Remote Changes Manually
  • Merging FETCH_HEAD Manually
  • Resolving Conflicts Using Git Pull
  • Pushing to a Remote Repository
  • Committing Under Another Author
  • How do Remote and Local Branches Sync?
  • Creating a Remote Branch Based on a Local Branch
  • Updating the Tracking Status of the Branches
  • Removing a Remote Branch Using a Local Terminal
  • Git Show-ref

Pull Requests

22 Lessons 0 Quizzes
  • Introduction to Pull Requests
  • Collaboration Between Contributors
  • What is a Pull Request?
  • Why was Pull Request Named Pull Request?
  • Pull Request Versus Merge Request
  • Pull Request Step-By-step
  • Creating a New Repository in GitHub
  • Changing the Author of the Last Commit
  • Pushing Branch to Remote
  • Opening a Pull Request
  • Adding Comments and Approving a Pull Request
  • Creating and Publishing a New Branch Using GitHub Desktop
  • Signing into GitHub Using GitHub Desktop
  • Creating and Merging a Pull Request
  • Adding a New Collaborator in GitHub
  • Exploring Your GitHub Account
  • Opening and Merging a Pull Request Using a Collaborator
  • Merging without Approvals
  • Configuring a Protected Branch Rule
  • Merging after Gaining Required Approval
  • Exploring Pull Requests in the Public Repositories
  • Working with Issues in GitHub

Forks and Contribution to the Public Repositories

13 Lessons 0 Quizzes
  • Introduction to Forks and Contribution to the Public Repositories
  • Creating a Fork
  • Synching Changes from the Parent Repository
  • Adding a New Upstream Remote Repository
  • Fetching Changes from Upstream
  • Synchronizing Changes from Upstream
  • How to Open Pull Request from a Forked Repository
  • Creating a Pull Request from a Forked Repository
  • Removing a Repository Collaborator
  • Forking Repository
  • Committing Changes in a Forked Repository
  • Opening Pull Request from a Forked Repository
  • Approving and Merging a Pull Request from a Forked Repository

Git Tags

9 Lessons 0 Quizzes
  • Introduction to Git Tags
  • Git Tags Overview
  • Staging Versus Production
  • Semantic Versioning
  • Lightweight Versus Annotated Tags
  • Creating Lightweight Tags
  • Creating Annotated Tags
  • Exploring a Git Tag Object
  • Pushing Tags to Remote

Rebasing

12 Lessons 0 Quizzes
  • Introduction to Rebasing
  • What is Rebasing?
  • Merging Versus Rebasing
  • How to Perform Rebasing
  • Rebasing – Step 1
  • Rebasing – Step 2
  • Creating a New Repository
  • Creating a Feature Branch and Making Changes
  • Rebasing a Feature Branch on Top of Master Branch
  • Completing Rebasing by Performing Merging
  • Exploring Graphs and Commits in SourceTree
  • Deleting a Feature Branch and Pushing to Remote

Ignoring Files in Git

8 Lessons 0 Quizzes
  • Introduction to Ignoring Files in Git
  • What is Git Ignore?
  • Git File Statuses: Untracked, Tracked, and Ignored
  • Basic Git ignore Rules
  • Pushing Repository with Ignored Files to Remote
  • Committing Previously Ignored Files
  • Ignoring Previously Committed Files
  • Git ignore Common Practices and Templates

Detached HEAD

4 Lessons 0 Quizzes
  • Introduction to Detached HEAD
  • Detached HEAD State
  • Making Experimental Commits in Detached HEAD State
  • Retaining Changes Made in the Detached HEAD State

Advanced Git

18 Lessons 0 Quizzes
  • Introduction to Advanced Git
  • Cloning One of the Public Repositories
  • Git Log Options: Oneline, Graph, and Stat
  • Git Shortlog
  • Filtering Commits by Author or Keyword
  • Pretty Formatting of Git Log
  • Filtering Merge Commits in Git Log
  • Git Reset
  • Git Revert
  • Modifying the Last Commit Using the Amend Option
  • Cherry-picking Commits
  • Reflog – Log of All Git Operations
  • Stashing Changes Using Terminal
  • Stashing Using GitHub Desktop
  • Garbage Collection
  • Squashing of Commits in GitHub
  • Interactive Rebasing with Squashing in the Local Repository
  • Git Development Workflow

GitHub Pages

9 Lessons 0 Quizzes
  • Introduction to GitHub Pages
  • Creating a Simple Website Using GitHub Pages
  • Hosting any Repository Using GitHub Pages
  • Creating a Basic React application
  • Preparing the React Application for Publishing to the GitHub Pages
  • Fixing Errors with Cached Credentials Using SSH Instead of HTTPS
  • Verifying a React GitHub Page
  • Configuring a Custom Domain for GitHub Pages
  • Creating a Static GitHub Page Using Markdown

GitHub Hooks

23 Lessons 0 Quizzes
  • Introduction to GitHub Hooks
  • Normal Git Workflow without Hooks
  • What are Git Hooks?
  • How Git Hooks can Be Used in Practice
  • Using a Pre-Commit Hook
  • Enabling a Post-Commit Hook
  • Disabling Rebasing Using a Pre-Rebase Hook
  • Matching an Author’s Email against a Regular Expression
  • Why Local Git Hooks are not Pushed to the Remote
  • Cleaning Up the Local Git Hooks Repository
  • Initializing a New Node.js Project
  • Installing the Jest NPM Package for Testing
  • Adding Multi and Sum Modules with Tests
  • Using the Pre-Commit NPM Package for Automation of the Pre-commit Hook
  • Cloning a Remote Repository and Verifying a Pre-Commit Hook
  • Replacing a Pre-Commit NPM Package with Husky
  • Skipping All Git Hooks Using the –no-verify Option
  • Introduction to Linter and Running Linter in the Pre-Commit Hook
  • Introducing a Lint-Staged Package to Check only Staged Files
  • Verifying Selective Linting and Testing Using Lint-staged
  • Adding a Post-Commit Hook
  • Verifying Commit Message Using Commitlint
  • Git Hooks Summary

0

0 Ratings
5 Star 0%
4 Star 0%
3 Star 0%
2 Star 0%
1 Star 0%

Reviews

Free

Start Course

Retake Course

Are you sure you want to retake the course? This action will permanently delete all your progress in this course.

Course Includes

  • Use Git in terminals as well as GUIs such as GitHub Desktop and Visual Studio Code
  • Explore different Git objects, including blobs, trees, and annotated tags
  • Create local and remote Git repositories
  • Get to grips with rebasing and merging branches
  • Discover what a pull request is and how to create it in GitHub
  • Learn advanced Git operations such as squashing, amending, and reverting commits
  • Contribute to public repositories using the forking technique

Deleting Course Review

Are you sure? You can't restore this back

Course Access

This course is password protected. To access it please enter your password below:

Buy for group

Complete Git Guide: Understand and Master Git and GitHub
No groups Found

You don't have any groups yet

Create a group and add group members. Sync Group(s)