Course Outline


  • The learners must have atleast 1 year of hands-on experience (must have written code)
  • Learners must have a basic understanding of the software engineering workflows, and must have atleast used a version control system before.
  • Learners should have a basic understanding of Linux (Ubuntu is the preferred distribution, but other distributions are also fine).


20 - 24 hours

Course Outline for Git

Getting Started
  • Understanding the software engineering process in terms of tooling
  • Version control - what it is and why it is required
  • Distributed version control - what it is and why it is required
  • VCS and DVCS - the alternatives and some history
  • An introduction to Git
  • Installation and setting up Git
Git Basics
  • Cloning an existing repository
  • Creating a new Git repository
  • Normal workflow - Committing and viewing changes
  • Branching and merging
  • Viewing history and comparing diffs
  • Distributed workflows
  • Working with conflicts
  • Tagging
  • Git tooling
    • gitweb
    • gitk
    • (etc)
  • Hosted Git
  • Understanding Git protocols - getting it to work with git:// etc
Advanced Git
  • Rebasing
  • Stashing
  • Treeishes
  • Setting up public and private repositories
Git Internals
  • Git objects
  • Git references
  • Packfiles
  • Understanding decentralized development
  • Supporting branches
    • Feature branches
    • Release branches
    • Hotfix branches
  • Installing and using git flow

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.