Mastering Git


This course will provide you with a deep understanding of distributed version control concepts and give you the necessary skills to succeed with Git. It will teach you how to configure and utilize Git to its full potential as the foundation for your software development process. Learn how to improve your software development process by exploiting some of the features that are unique to distributed version control systems.


  • Branching strategies
  • Adaption to agile development processes

From basics to advanced levels:

  • What is Git?
  • Git command line - create, commit, tag, view history
  • Viewing the history
  • .gitconfig and .gitignore
  • Graphical client interfaces (exemplified with SourceTree)
  • Fixing errors in commits - reset, changing commits, amending and subtracting merges
  • Branching and merging
  • Troubleshooting with Git
  • Maintaining your Git repository - delete, prune, gc, fsck
  • Distributed Git - cloning, remotes, forking, fetch, pull, push, Refs, rewriting
  • Branching - and flow strategies - Overview of branch and merge strategies
  • Git hooks - Client side hooks, Server side hooks, Enforcing policy with hooks
  • GitHub - Pull-requests, GitHub Pages

Computer setup

You only need to bring a laptop with Git installed. The course is run as instructor-led presentations of each topic followed by either lab exercises or discussions.

Attendees are welcome to bring questions or challenges from their own background.


09:00 - 16:15