How git stores changes