WA2410

Introduction to Version Control with Git Training

This Git course teaches you how to navigate version control like a pro. From core concepts like branching and merging to advanced techniques like rewriting history and managing submodules, you'll thoroughly understand Git's capabilities.

Course Details

Duration

1 day

Objectives

  • Understand version control and understand its benefits, explore DVCS vs. centralized systems, and learn how Git works
  • Master Git's essential commands for repositories, changes, commits, and history
  • Optimize Git setup and leverage GPG
  • Use branching and merging for collaborative development
  • Rewrite history with squashing/rebasing, amend commits, use Git reset, and troubleshoot with Git bisect
  • Master submodules and subtrees

Prerequisites

Basic computer (Windows or Mac or Linux) literacy

Target Audience

Software developers
Course Outline
  • Introduction to Version Control
    • What is Version Control
    • "Undo" Capability
    • Collaboration
    • Communication and Sharing
    • Auditing and Tracking
    • Release Engineering, Maintenance, SDLC
    • Diagnostics
    • History of Version Control
    • Distributed Version Control
  • Introduction to Git
    • What is Git
    • Git's Design Goals
    • Branching and Merging
    • Centralized Version Control
    • Distributed Version Control
    • Git Basics
    • Getting Git
    • Git on the Server
    • Git Repository Managers
    • Git on Somebody Else's Server
  • Basic Git Operations
    • Using Git
    • Definitions
    • Commit
    • Commit (continued)
    • How to Think About Commits
    • Viewing History
    • Configuring Git
    • Configuration Scope
    • User Identification
    • GPG Signing
    • Gnu Privacy Guard
    • GPG Basics
    • GPG and Git
    • .gitignore
    • Other Useful Configurations
  • Branching, Merging and Remotes
    • Branching
    • Branches in Git
    • Merge
    • Fast Forward Merge
    • --no-ff
    • More Than One Repository
    • Working with Remotes
    • Fetch and Pull
    • Push
    • Pull Requests
    • Tagging a Commit
    • Lightweight Tags
    • Annotated Tags
    • Sharing Tags
    • Checking Out a Tag
  • Git Work Flows
    • Work Flows
    • Local Work Flow
    • Feature Branches
    • Centralized Workflow
    • Integration Manager Work Flow
    • Other Work Flows Are Possible
  • Introduction to GitFlow
    • What is GitFlow
    • Benefits
    • How GitFlow works?
    • GitFlow Extension
    • Initializing GitFlow
    • Features
    • Release
    • Hotfixes
  • Rewriting History
    • Rewriting History
    • Squashing Commits
    • Rebase vs Merge
    • Amending Commits
    • Reset
  • Chapter 8. Examining History
    • Looking at History
    • Log
    • Blame
    • Bisect
  • Submodules and Subtrees
    • Submodules
    • Dependency Management
    • Git Submodules
    • Adding a Submodule
    • .gitmodules
    • Cloning a Repository with Submodules
    • Updating Submodules (Initial)
    • Updating Submodules (Ongoing)
    • Subtrees
    • Subtrees – How They Work
    • Subtrees
  • Configuring Git
    • Advanced Configuration
    • Advanced Configuration Variables
    • Environment Variables
    • Aliases
    • Git Hooks
  • Lab Exercises
    • Lab 1. Starting Out With Git
    • Lab 2. Branching, Merging and Working with Remotes
    • Lab 3. Experimenting with WorkflowsLab 4. Using the GitFlow Workflow
    • Lab 5. Rebasing and Rewriting History
    • Lab 6. Git Submodules
    • Lab 7. (Optional) GitFlow Workflow With the GitFlow Extensions