Git is a standard tool for version control these days so we all use it daily. And we all understand it. Or do we? Let's face it - git is hard. And one of the main reasons it is hard is that it's UI is full of leaky abstractions. That is why in order to get comfortable with git you must gain some understanding of how git works "under the hood".
In this talk, we're gonna do exactly that and see how git's data model works, how git handles branching, and what staging area really is...