Version Control Deep Dive: Git & GitHub

Programming

Course Description


This 3-day course is designed to help participants master Git and GitHub for version control, collaboration, and team-based software development. Through hands-on labs and real-world workflows, learners will explore everything from basic Git operations to advanced branching strategies, conflict resolution, pull requests, and CI integration. Ideal for teams and individuals aiming to streamline their codebase management and development lifecycle.


Duration: 3 Days

Format: Instructor-led, hands-on labs, real-world branching scenarios, team workflows, and project-based collaboration

woman in white shirt writing on white paper

Description

Course Outline


? Day 1: Git Fundamentals and Local Workflows

Session 1: Introduction to Version Control


  • What is version control and why it matters
  • Centralized vs. distributed version control
  • Git architecture: Working directory, staging area, local repo


Session 2: Core Git Operations


  • Installing Git and configuring a Git user
  • Creating repositories and understanding .git
  • Adding, committing, viewing logs, and inspecting history


Session 3: Branching and Local Workflows


  • Creating and switching branches
  • Merging changes and fast-forward merges
  • Undoing changes: reset, revert, stash


Lab Activities:

  • Initialize a Git repo, create commits, and explore logs
  • Create and merge branches in a local-only workflow
  • Practice undo techniques and branching safely


? Day 2: Remote Repositories and GitHub Collaboration

Session 1: GitHub Essentials


  • Setting up GitHub and connecting with Git
  • Cloning, forking, and pushing to remote repositories
  • SSH keys vs. HTTPS authentication


Session 2: Collaborative Workflows


  • GitHub flow vs. Gitflow vs. trunk-based development
  • Working with pull requests and code reviews
  • Branch protection rules, issues, and projects


Session 3: Handling Conflicts and Best Practices


  • Merge conflicts: why they happen and how to resolve
  • Rebasing vs. merging: when and why
  • Gitignore, tags, and releases


Lab Activities:


  • Fork and clone a repo, then submit a pull request
  • Create feature branches and resolve merge conflicts
  • Collaborate with peers on a shared GitHub project


? Day 3: Advanced Git Techniques and CI Integration

Session 1: Git Internals and History Rewriting


  • Understanding the Git object model (blobs, trees, commits)
  • Using rebase, cherry-pick, and interactive rebase
  • Cleaning up history and squashing commits


Session 2: Automating with GitHub Actions


  • Introduction to GitHub Actions for CI/CD
  • Creating workflows: linting, testing, deployment
  • Managing secrets and environment variables


Session 3: Capstone Project + Version Control Strategy


  • Design and implement a real-world branching strategy
  • Final group challenge: Fork, branch, code, resolve conflicts, and merge
  • Wrap-up: Choosing the right Git strategy for your team


Lab Activities:


  • Practice rewriting commit history with interactive rebase
  • Set up a basic CI workflow using GitHub Actions
  • Complete a mini-project with GitHub-based collaboration and review