How Git Version Control Works?