Introduction to Git

Categories: Git Version Control
Course Length: 3 Days

Git is the industry-standard version control system used to track changes, manage history, and enable collaboration in modern software development. It allows developers to work independently, experiment safely, and integrate changes without losing control of their codebase. Understanding Git is essential for working effectively in any professional development environment.

This Git training goes beyond memorizing commands. It focuses on building a clear mental model of how Git works, so developers can use it with confidence rather than fear.

We begin with the core architecture. We understand how Git stores data, tracks changes, and manages history, so that operations like branching, merging, and rebasing make intuitive sense. From there, we move into real-world workflows used by modern teams, including pull requests, trunk-based development, and collaborative version control strategies.

Participants will learn not only how to use Git, but how to recover from mistakes, structure commits for readability, and work effectively in complex repositories. Advanced topics such as worktrees, rebasing strategies, debugging with reflog, and performance techniques for large codebases are covered to prepare developers for real-world challenges.

By the end of the training, Git is no longer a black box, but a powerful tool that developers can reason about, trust, and use efficiently in any environment.

  • Introduction to Git

    • Git History

    • Git Architecture

    • Git Installation

    • Git Configuration

  • The Guts of Git

    • Git Initialization

    • SHA-1 Objects

    • Git Folder

    • Git Model

    • Git Workflow

  • Basic Commands

    • add

    • commit

    • status

    • diff

    • log

    • mv

    • rm

  • Aliases

  • Using .gitignore

  • Making Corrections

    • Ancestral References

    • reset

    • clean

    • checkout

  • Specialized Git Clients

  • Branching

    • Creating

    • Fast Forward Merging

    • Three-way Merging

    • Deleting

    • Handling Conflicts

  • Tagging

    • Creating

    • Removing

  • Stashing

    • pop

    • apply

    • list

    • drop

    • clear

  • Remotes

    • Creating

    • fetch

    • pull

    • clone

    • push

    • branches

    • tags

    • prune

  • Github

    • Creating an Account

    • Issues

    • Forking

    • Force-Pushing

    • Pull Requests

    • Protecting Branches

    • Collaborating

    • GitHub Action Basics

  • Advanced Concepts

    • rebase and interactive rebase.

    • bisect

    • blame

    • rerere

    • reflog

    • revert

    • patch

    • sparse-checkout

    • worktree

  • Git Hooks