Training & courses

Training courses are offered on-site and can be adapted to your needs. Send an email to for a quote or details. If you need a course that not listed, I can develop it for you.

git beyond push & pull

A hands-on course on effectively using git as a core programming- and development tool.

Version control, which today is almost synonymous with git, is a centrepiece in the programmer toolkit. It is everywhere, from small solo projects, to infrastructure, to massive code bases with thousands of contributors. Unfortunately, it is often only used as a fast copy-and-sync interface to the shared code base, and many powerful features are left unused. Git is an amazing tool, but it can be daunting, and getting beyond the basics is hard. Thankfully, there is a payoff, and being more familiar with git will supercharge you.

This practical course will demystify some very useful operations with git, give you some good habits that set you up for success, and prepare you for solving complex problems.

Through a mix of examples, stories, and exercises you will learn about and get experience with topics and features like:

  • The art of good commits
  • Effective git log: search, queries, diffs
  • Making use of the staging area
  • Mastering merges: conflict resolution and octopuses
  • Composition with cherry-picks, fixups, and rebase
  • Frequent snapshots and rollbacks
  • Bisecting for bugs: time travel for the cause
  • Recovering not-yet-lost changes
  • Transports, patches, and emails

After the course you will have a renewed appreciation for what git can do for you, and a stronger foundation to build on when maintaining your programs. This course is great for the team as it makes some time for team dialogue on conventions and collaboration with git.

What you should bring

Your favourite git client and programming environment.

There is no substitute for real world examples; you can bring your own code base, or a favourite open source one, to play with. This is fun, but optional; plenty good examples will be provided.


Some basic exposure to git is very useful, but the course can be extended to a bottom-up course.