Course curriculum

  1. 01
    • Intro Video

  2. 02
    • NeedForVersionControlSystem and Git Part 1

    • NeedForVersionControlSystem and Git Part 2

    • VCS-How it works

    • DistributedVCS

    • InstallingGit

    • Git CLI vs Git Bash vs Git GUI

    • Basic Bash Commands

    • What exactly is Git Commit

    • Initilizing the project and Exploring dot git folder

    • Configuring Git Credentials and exploring local global system configs

    • Staging and Unstaging and checking status

    • Understanding Commit with multiple usecases

  3. 03
    • Sha1 Hashing Algorithm

    • Git Internals (All about Object Database) Part 1

    • Git Internals (All about Object Database) Part 2.zip

    • Git Internals - Viewing and reading Git Objects

    • Garbage Collection and Pack Files

    • Git Snapshot - What it means to take a snapshot

    • How Blob Objects Behave

    • Time travel with Git

    • Time Travel in Practice

  4. 04
    • Life without Branches

    • What are Git Branches

    • How Branches Solved our Problems

    • How Git Branches Work and What Exactly is a Branch

    • Branches in Action (Creating Branches and exploring the git repo)

    • Understanding _HEAD_ - Detached Head State - Head in Action.

    • Undo the changes with Git Reset HEAD

    • Retrieving the lost mystery with reflog

  5. 05
    • Fast-Forward Merge

    • Fast-Forward Merge In Action

    • Deleting the branch and recovering

    • Understanding Three Way Merge and Merge Commit

    • Three Way Merge in Action

    • Understanding Merge Conflicts

    • Merge Conflicts in Action Part 1

    • Merge Conflicts in Action Part 2

    • Installing and setting up Visual Studio Code to work on Git

    • Exploring VS Code and performing GIT Operations

  6. 06
    • Git Rebase vs Merge

    • Performing Rebase in VS Code _ Handling conflicts

    • Git Rebase in Git Bash - Skipping conflicts and Aborting the Rebase

    • Git Interactive Rebase

    • Rebase to specific commit or to another feature branch

    • When to use rebase and when to use Merge - usecases

  7. 07
    • What is Stashing - It_s usecases - Example of Stashing

    • Applying the stash across multiple branches

    • Retriving a specific stash - Listing stashes - Handling conflicts

    • Stashing Selective Changes and retrieving them - Understanding Hunk

    • Exploring stashing in VS Code - Deleting a stash

  8. 08
    • Git Ignore and it_s significance (Crash course)

    • Git Ignore in action - Global exclude config

    • Precedence order - overriding - Pattern debugging

    • Ignore files that were already committed

    • Generating the Ignore files for your project

  9. 09
    • Why GitHub - GitHub vs Bit Bucket vs GitLab

    • Creatig GitHub Account

    • Creating and understanding Public and Private repositories in GitHub

    • Making Commits in GitHub and Understanding ReadMe file

    • Creating Branch and committing changes - Managing branches in GitHub

  10. 10
    • Cloning a public repo and exploring other options

    • Cloning a Private Repository and adding project collaborators on GitHub

    • Understanding Tracking Branches and Default branch

    • Exploring Tracking branches - Configuring Default branch - Understanding Origin-Head

    • Understanding origin remote - adding, editing, deleting remotes

  11. 11
    • Understand Git Fetch and it_s usecases

    • Git Fetch in Action Part1 (Command variations - Checking status with commands)

    • Git Fetch in Action Part2 (Exploring refs - FETCH_HEAD)

    • Switching to Remote Repo State

    • Merging the Changes - Using FETCH_HEAD

    • Using Visusal Studio code to Fetch and Merge

    • Updating Local References with Git Fetch

  12. 12
    • Understanding Git Pull

    • Git Pull in Action and observing what it does

    • Understanding Git Pull with 3way merge

    • GIt pull with rebase and it_s implications

    • Dealing with conflicts with Git Pull --rebase

    • Using Stashing and Hard reset

  13. 13
    • Setting up everything for contributing - Adding collaborator - Setting credentials and making commits

    • Creating a remote branch and pushing changes using Git Bash and VSCode - Pushing to all branches

    • Understanding Pull Request - Raising a Pull Request

    • Understanding protected branches - Applying branch protection rule - Mandating Code Reviews

    • Reviewing and approving the changes - Working on review comments and publishing new changes

    • Exploring the merging options - Understading Squashing commits - Deleting remote branch from local machine

    • What Git Pull Actually Does

    • Resolving conflicts on GitHub the right way - Force pushing changes and it_s consequences

    • Divide and Conqr Strategy

    • Resolving Conflicts by merging main in to feature branch

  14. 14
    • What is Forking and why forking

    • Forking a public repository and cloning it in our local machine

    • Contributing the necessary changes

    • Syncing the Forked repo with original one and updating local

    • Syncing the Forked repo with original from local repo

    • Pushing our changes to the forked repo

    • Raising the pull request and merging the changes in upstream repository

    • Exploring Existing Public Project

  15. 15
    • Branching Strategy Explained

    • Branching Strategy with Realtime Scenario

    • Semantic Versioning Explained

    • Understanding Git Tags

    • Braching Workflow in Action

    • Hot Fix workflow in Action

    • Creating Tags - Annotated vs Lightweight Tags - Pushing tags to remote

    • Understanding how Tags are stored - Detached head state with tags

    • Releases and Creating Tags on GitHub

  16. 16
    • Dismiss stale pull request approvals for new commits

    • Configuring Code Owners with patterns - Automatic review request

    • Mandating conversation resolution before merging

    • Exploring all other branch protection rules

  17. 17
    • Mimicing the Commits and the need to have vetified commits

    • Understanding Digital Signatures

    • Understanding Signed Commits

    • Createing Public and Private Keys Using GPG

    • Exporting Public Key and updating GPG key on GitHub

    • Making Signed Commit - Setting global config - verifying signed commits on GitHub

    • Mandating Signed Commits - Signing commits from VS Code