Event sourcing itself is a fairly straightforward concept which the parent does sum up though - store events which describe what happened to an entity in a system rather than the resulting state. The state of an object can be derived via application of a left fold over the history.
[1]: https://willi.am/blog/2014/10/14/for-the-last-time-git-store... - this is the best reference I can find quickly, though the git manual would obvioiusly be more authoritative.