Git is rapidly taking over the development workplace, and nowadays it is integrated with many development, testing and deployment platforms. But one of the downsides of high-level tools is that they can hide the details of what is happening under the hood. So when things go wrong or just get complicated it can be hard to understand why git behaves the way it does. But at its core Git consists of a few simple concepts that, when understood, make it a much more intuitive tool and enables powerful workflows. This talk introduces these core Git concepts and uses them to clarify some examples of seemingly counterintuitive behaviour. It also introduces some of Git’s less-known features and tricks that are useful to have in your arsenal. This is an intermediate-to-advanced course for developers who are already using or investigating Git and want to gain a greater understanding of how it works. Filmed at Devoxx 2015.