git commit dan life cycle