How Does Git Store Changes